[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>SQL Server]] * 目次 [#v18ee228] #contents *概要 [#r47a15be] SQL Serverにおいて、 -[[SQL Server 大量データ処理時の性能問題]] -[[SQL Server でのロック・タイムアウト]] 等の問題発生時の一般的な問題分析方法について説明します。 *ツール [#l2cfd1df] **Management Studio [#b49b7446] ***クエリ・アナライザ → クエリ・エディタ [#ic07a23c] -クエリの実行とデバッグが可能 -また、クエリプランの確認も可能。 ***SQLプロファイラ(SQLトレース) [#bed21543] [[SQL Server でのロック・タイムアウト]]の[[SQLトレースを使用して確認>SQL Server でのロック・タイムアウト#c295bf32]]でも説明していますが、~ SQLトレースを取得・確認し問題(遅い処理が何処か?)を特定できる可能性もあります。 -起動時の-T オプションでトレースフラグを設定。 -DBCC TRACESTATUSで確認可能。 ***システムテーブル/動的管理ビュー [#ld604943] SQL Server 2005から動的管理ビューと言うものも導入されています。~ パフォーマンス・カウンタより詳細な情報を収集できます。 -連載:Dr. K's SQL Serverチューニング研修 Part II (2)~ チューニングに大変革をもたらす動的管理ビュー~ http://www.atmarkit.co.jp/fdb/rensai/drk2_02/drk2_02_1.html~ http://www.atmarkit.co.jp/fdb/rensai/drk2_02/drk2_02_2.html -真・Dr. K's SQL Serverチューニング研修(4)~ DB管理者がいますぐ確認すべき3つの設定 (3/3) - @IT~ http://www.atmarkit.co.jp/fdb/rensai/10_drk/04/drk03.html~ --押さえておきたい4つの動的管理ビュー ***インデックスチューニングウィザード → データベース・エンジン・チューニング・アドバイザ [#b2d9fa8c] ***レポート(各種 標準レポート、Performance Dashboard Reports) [#t62eedcf] *ログ [#acec1183] **エラーログやイベントログ [#jdbdecf2] はじめにエラーログやイベントログを確認ください~ (Windowsのものだけでなく、SQL Serverのログも)。 -[SQL Troubleshooting] 第1回 : Tips - SQL Server エラーログとイベント ログを採取する (SQL 2000 ~ 2008 R2)~ http://blogs.msdn.com/b/jpsql/archive/2012/03/27/info-sql-server-sql-server-error-log-and-event-log.aspx **SQLトレースログ [#d792e5a7] SQLトレースをログ出力する。 **パフォーマンスログ [#id8e8d35] SQLトレースログに加えて、 パフォーマンスカウンタを選択、パフォーマンスログを取得し~ 問題(ソース消費量が多い処理は何処か?)を特定できる可能性もあります。 *事象別の分析方法 [#a4f1b827] **長時間実行クエリ、ストアド情報 [#df4c3615] ***sys.dm_exec_query_stats、_sql_text動的管理ビュー [#v04a8314] T-SQLファイルを作成し実行する(スケジューラでsqlcmdから実行する等)。 **ブロッキング情報 [#zaecafdd] ***sys.dm_exec_request動的管理ビュー [#b7ddd0be] T-SQLファイルを作成し実行する(スケジューラでsqlcmdから実行する等)。 ***sp_blocker_pss80ストアド [#obc8f49b] T-SQLファイルを作成し実行する(スケジューラでsqlcmdから実行する等)。 -参考 --SQL Server 2005 および SQL Server 2000 のブロッキングを監視する方法~ http://support.microsoft.com/kb/271509/ja ***トレースのblocked process reportイベント [#j24b2863] T-SQLファイルを作成し実行する(sqlcmdから実行する等)。 *構成情報の分析方法 [#sc4ae627] **スケジューラ情報 [#jb435162] ***sys.dm_os_schedulersビュー [#f21fb277] T-SQLファイルを作成し実行する(スケジューラでsqlcmdから実行する等)。 **データベース・ミラーリング [#o8a76f2d] いずれも、T-SQLファイルを作成し実行する(スケジューラでsqlcmdから実行する等)。 ***sys.database_mirroring_endpoin、_connectionsカタログビュー [#of09c67d] エンドポイントとコネクション情報 ***sys.database_mirroringカタログビュー [#lc7c4049] プリンシパルとミラー情報 ***sys.database_mirroring_witnessesカタログビュー [#d35493cc] 監視サーバ情報 **[[MS-DTC]] [#cbbf0db4] ***[[MS-DTC]]トレース [#k51d2ac9] GUIとレジストリから設定。 ***CommunicationManagerエラー・トレース [#r837e687] レジストリから設定。 *定数設定 [#pafd1fcb] 定数設定による環境差異の可能性がある場合は、↓の主要定数一覧を参考にして下さい。 -真・Dr. K's SQL Serverチューニング研修(4)~ DB管理者がいますぐ確認すべき3つの設定 - @IT --DB管理者がいますぐ確認すべき3つの設定~ http://www.atmarkit.co.jp/fdb/rensai/10_drk/04/drk01.html~ http://www.atmarkit.co.jp/fdb/rensai/10_drk/04/drk02.html ---その1:tempdbの数をCPUコア数にあわせよ ---その2:x64環境なら「メモリ内のページロック指定」を変えよ ---その3:OLTPでは、並列処理の最大限度(Max DOP)はCPUコア数の「4分の1」に設定せよ *参考 [#y028a649] -[SQL Troubleshooting] SQL Server トラブルシューティング 6 回シリーズのご案内~ Microsoft SQL Server Japan Support Team Blog - Site Home - MSDN Blogs~ http://blogs.msdn.com/b/jpsql/archive/2012/03/30/sql-server-6.aspx