プロが教えるわが家の防犯対策術!

お世話になっております

・サーバ:Windows2008R2+SQLServer2012
・クライアント:Windows7

上記環境にて、クライアントのSSMS上で、
あるストアドプロシジャを実行すると丁度2分程かかります。
(これをスピードアップさせるのが目的です)

 exec hoge para1,para2


同じく、SSMSで「新しいクエリ」を作成して、
そのストアドプロシジャの実行部分だけを
貼り付け、パラメタだけを指定して実行すると4秒で終わります。

 declare @para1 smallint
 declare @para2 smallint
 set @para1 = 1
 set @para2 = 2
 (以下ストアド内のSQLを貼り付け)


「SET ARITHABORT ON」を付加しても
全く変化がありませんでした。

なぜこのような事が起こるのか、見当がつかず、困り果てています。
対応方法等ご存じの方がいらっしゃいましたら
お知恵を拝借したく、よろしくお願いいたします。

A 回答 (1件)

一般論として


一番考えられるのがコンパイルが動作する場合ですね。

ストアドプロシャを修正後
最初の実行はコンパイルされるので、少し時間がかかります。
二回目以降は速くなります。

質問の内容からこのケースに該当するかどうかは不明ですが、
コンパイルされる条件は他にもいくつかあるようです。

以下も参考にしてください。
http://engineermemo.wordpress.com/2013/08/02/%E3 …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

ご指摘いただいた通り、
何度かリコンパイルも行ってみましたが、
残念ながら改善はされませんでした。
ダメもとで削除&再作成しても同様でした。

もうしばらく調べてみます。
ありがとうございました。

お礼日時:2014/01/23 20:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A