概要
やみくもにパフォーマンス改善を行うのではなく、ボトルネックとなっている箇所を調べ、その箇所に対して改善することが重要である。 SQL Serverにおいて、その「ボトルネックとなっている箇所を調べ」るためのツールについて調べたことを以下に記す。 以下が非常に参考になった。http://www.unisys.co.jp/services/atlasbase/pdf/dbm_1007_gui.pdf
主な要因
[1] リソース不足 →【改善策】メモリ増設、SQL文の改善(例:アクセスするデータ量の絞込み)など
[2] 非効率なクエリ →【改善策】インデックスの設定、SQL文の改善など
[3] 待機(待ち状態が起こっているなど) →【改善策】アプリケーションの見直しなどhttp://blogs.msdn.com/b/jpsql/archive/2012/04/05/10291003.aspx
ツール
SQLプロファイラ
* 実行したクエリの実行状態を把握・・・「非効率なクエリ」の把握 * 実行したクエリのロックの取得状況やデッドロック状況の確認・・・「待機」の把握 詳細は以下。http://blogs.yahoo.co.jp/dk521123/27584078.html
動的管理ビュー
* プロシージャー内の実行状況を把握・・・「非効率なクエリ」の把握 * 待機の種類ごとの待機時間傾向分析およびロック待ちリソースの把握・・・「待機」の把握
参考文献
インデックス関連の動的管理ビューおよび関数http://msdn.microsoft.com/ja-jp/library/ms187974.aspx
パフォーマンス・モニター
* システムリソースの利用状況、SQL Serverの稼動状況の把握・・・「リソース不足」の把握 * ロックの数やロック待ちの時間の傾向の把握・・・「待機」の把握
参考文献
http://hehao1.seesaa.net/article/7017279.htmlhttp://hehao1.seesaa.net/article/7017299.html