こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ストアドの速度がクエリの30倍遅いです

お世話になっております

・サーバ: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」を付加しても
全く変化がありませんでした。

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

投稿日時 - 2014-01-20 17:02:01

QNo.8438571

困ってます

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

ANo.1

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

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

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

以下も参考にしてください。
http://engineermemo.wordpress.com/2013/08/02/%E3%82%B9%E3%83%88%E3%82%A2%E3%83%89%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%AE%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

投稿日時 - 2014-01-23 13:58:21

お礼

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

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

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

投稿日時 - 2014-01-23 20:29:40

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-