- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>SQL Server]]
-[[戻る>SQL Server 問題の分析方法]]
* 目次 [#xa5996cc]
#contents
*概要 [#zfca7d59]
アドホック クエリは「実行プラン」が再利用されず、SQLが再コンパイルされる。
このため、多数のユーザが短いアドホック クエリを同時実行すると、~
-アドホック クエリ
--「実行プラン」が再利用されず、SQLがコンパイルされる。
--このため、多数のユーザが短いアドホック クエリを同時実行すると、~
CPU の使用率が非常に高くなり、システム全体の性能が低下することがある。
-「実行プラン」が再利用の再利用
--まったく同じクエリのときのみ「実行プラン」が再利用される。
--検索キーの値を変更しただけで、「実行プラン」の再利用がされなくなる。
--これは、クエリをパラメタ化することで防ぐことができる。
*監視方法 [#rfbbb277]
**[[パフォーマンス カウンタ]] [#a617adbc]
この場合、[[パフォーマンス カウンタ]]を使用して監視を行う。
-SQL Server:Buffer Manager:Free pages
-SQL Server: SQL Statistics:SQL Compilations/sec
のカウンタ値が高く、
-SQL Server:Buffer Manager:Stolen Page Count
-SQL Server:Buffer Manager:Memory Grants Pending
カウンタ値が低いという状態になる。
**[[SQLプロファイラ(SQLトレース)]] [#ge480ac8]
必要に応じて、[[SQLプロファイラ(SQLトレース)]]を使用する。
**[[実行プランのグラフィカル表示]] [#bfd89a9b]
問題のクエリが特定できたら、Management Studioを使用して、~
クエリプラン(実行プラン)のグラフィカル表示も可能。
*対策方法 [#s5909dec]
この状態では、CPUボトルネックが発生する可能性がある。
この場合、SQLのコンパイルのコストを避けるために、~
クエリのパラメタ化による「実行プラン」の再使用を検討する。
*参考 [#bad37ce6]
アドホック クエリの性能問題の監視、対策方法については、以下のURLを参照のこと。
-[HOWTO] アドホック クエリのパフォーマンスのトラブルシューティングを行う方法~
http://support.microsoft.com/kb/243588/ja
**[[SQL Server のオプティマイザ]] [#d4ca87d3]
オプティマイザが実行プランを決定する。
----
Tags: [[:データアクセス]], [[:SQL Server]], [[:障害対応]], [[:性能]]