- PR -

ストアドのDB再起動後のレスポンス

投稿者投稿内容
R246
会議室デビュー日: 2006/04/17
投稿数: 14
投稿日時: 2007-02-05 15:28
毎晩、夜間バッチでDBのバックアップを取るためにSQL Serverを一旦停止
させて、バックアップ終了後に再起動させてます。
それが原因かは不明ですが、各々のストアドのその日の最初の実行が異常に遅いです。ストアドの修正は行ってないのですが、最初の実行時に再コンパイルをしているのでしょうか?それとも他に原因があるのでしょうか。
対処方法などお分かりの方いらしたらご教授ください。

[ メッセージ編集済み 編集者: R246 編集日時 2007-02-05 17:48 ]
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2007-02-05 18:38
引用:

R246さんの書き込み (2007-02-05 15:28) より:

各々のストアドのその日の最初の実行が異常に遅いです。ストアドの修正は行ってないのですが、最初の実行時に再コンパイルをしているのでしょうか?それとも他に原因があるのでしょうか。




お疲れ様です。
TimberLandChapel です。

再起動後には,クエリプランの再評価のためにリコンパイルが自動で入ります。

バージョンが 2000 か 2005 かわかりませんが,ひとまず 2005

ストアド プロシージャの再コンパイル
http://msdn2.microsoft.com/ja-jp/library/ms190439.aspx

しかし,これがパフォーマンスダウンに影響しているかどうかは
パフォーマンスモニタで評価しないとなんとも言えないと思います。

(とくに 2005 では,ステートメントレベルのリコンパイルになっていますし)

Compilations や Cache まわりのトークンを監視して,
何に時間がかかっているのか,を調べる必要がありますね。

一方,メンテナンスタスクの一部として,何も考えずにストアドプロシージャをコールしてしまうというのもありますが。。。

いずれにせよ,チューニングのお話ですので,
要件に依存して話が変わると思います。

----------
TimberLandChapel
2007.01.27 書籍発売
http://blogs.timberlandchapel.com/blogs/timberlandchapel/archive/2007/02/03/1216.aspx
Microsoft MVP for Windows Server System - SQL Server (Jul 2005 - Jun 2007)
http://blogs.timberlandchapel.com/blogs/timberlandchapel/
R246
会議室デビュー日: 2006/04/17
投稿数: 14
投稿日時: 2007-02-06 08:53
アドバイスありがとうございます。

バージョンは2000です。
以前にいた会社で開発していた時も客先でデモを行う前に一通りの画面を開いてから
行っていました。全てのストアドにおいて、最初に実行する時に倍以上の時間がかか
ります。
みなさんはこのような現象は起こっていないのでしょうか?
MeijiK
常連さん
会議室デビュー日: 2005/12/26
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2007-02-09 02:05
こんばんわ。

バージョンが2000ということで、以下を参照して対策なさってはいかがでしょうか。

ストアド プロシージャの再コンパイルのトラブルシューティング
http://support.microsoft.com/kb/243586/ja
R246
会議室デビュー日: 2006/04/17
投稿数: 14
投稿日時: 2007-02-09 10:41
MeijiKさん、アドバイスありがとうございました。

貴重な情報のリンクを参考にさせていただきます。
R246
会議室デビュー日: 2006/04/17
投稿数: 14
投稿日時: 2007-02-09 13:06
よくよく調べたら、ストアドでなく、クエリが遅いことが判りました。

http://support.microsoft.com/kb/815249/

上記はSP3での事象ですが、使用している環境はSP4です。
タイトルと内容が変わってしまいましたが、対応方法等ご存知の方、教えてください。
MeijiK
常連さん
会議室デビュー日: 2005/12/26
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2007-02-11 09:32
引用:

R246さんの書き込み (2007-02-09 13:06) より:
よくよく調べたら、ストアドでなく、クエリが遅いことが判りました。

http://support.microsoft.com/kb/815249/

上記はSP3での事象ですが、使用している環境はSP4です。
タイトルと内容が変わってしまいましたが、対応方法等ご存知の方、教えてください。


どう調べてストアドではなくクエリが遅いことがわかったのですか?

また、上記のURLはSP4では改修されたとあるので、本当にSP4ならば大丈夫なはずですよ。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-02-11 16:03
引用:

R246さんの書き込み (2007-02-06 08:53) より:
以前にいた会社で開発していた時も客先でデモを行う前に一通りの画面を開いてから
行っていました。全てのストアドにおいて、最初に実行する時に倍以上の時間がかか
ります。


最初はキャッシュが空っぽなため遅いだけではないでしょうか。あるいはキャッシュに限らずプーリングなどさまざまなものがありますが。DBMS に限らず、コンピューターは最初はなんでも遅いものです。(メモリーリークなどバグっぽいものだと、逆に、最初は速くてだんだん遅くなるというのもありますが。)
「倍以上」というのが微妙なところですが、2倍程度ならありがちなような気もします。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}

スキルアップ/キャリアアップ(JOB@IT)