「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>SQL Server]]

* 目次 [#xa5996cc]
#contents

*概要 [#zfca7d59]
-アドホック クエリ
--「実行プラン」が再利用されず、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

----
Tags: [[:データアクセス]], [[:SQL Server]], [[:障害対応]], [[:性能]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS