マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • アドホック クエリ
    • 「実行プラン」が再利用されず、SQLがコンパイルされる。
    • このため、多数のユーザが短いアドホック クエリを同時実行すると、
      CPU の使用率が非常に高くなり、システム全体の性能が低下することがある。
  • 「実行プラン」が再利用の再利用
    • まったく同じクエリのときのみ「実行プラン」が再利用される。
    • 検索キーの値を変更しただけで、「実行プラン」の再利用がされなくなる。
    • これは、クエリをパラメタ化することで防ぐことができる。

監視方法

パフォーマンス カウンタ

この場合、パフォーマンス カウンタを使用して監視を行う。

  • 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トレース)

必要に応じて、SQLプロファイラ(SQLトレース)を使用する。

実行プランのグラフィカル表示

問題のクエリが特定できたら、Management Studioを使用して、
クエリプラン(実行プラン)のグラフィカル表示も可能。

対策方法

この状態では、CPUボトルネックが発生する可能性がある。

この場合、SQLのコンパイルのコストを避けるために、
クエリのパラメタ化による「実行プラン」の再使用を検討する。

参考

アドホック クエリの性能問題の監視、対策方法については、以下のURLを参照のこと。

SQL Server のオプティマイザ

オプティマイザが実行プランを決定する。


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-25 (月) 12:41:19 (548d)