sql server パフォーマンス問題対処 deep dive
Post on 28-May-2015
3.340 Views
Preview:
TRANSCRIPT
9
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
待機種類ごとの待機時間(秒)
左図の例の場合、SQL Server 全体の
ボトルネックはPAGEIOLATCH_EX
11
待機種類 待機時間 (秒) 待機の原因
PAGEIOLATCH_EX 4,506 ディスク IO
SOS_SCHEDULER_YIELD 3,200 スレッド割り当て
WRITELOG 866 トランザクションログのフラッシュ
LATCH_EX 451 非ページ排他ラッチ
LCK_M_U 380 更新ロック
LCK_M_X 220 排他ロック
・・・ ・・・
12
待機種類 待機の原因に繋がっているリソース
SOS_SCHEDULER_YIELD CPU
RESOURCE_SEMAPHORE メモリー
PAGEIOLATCH_EX, _SH ディスク IO (データファイル配置ドライブ)
WRITELOG ディスク 書き込み (トランザクションログ配置ドライブ)
ASYNC_NETWORK_IO ネットワーク (クライアント応答)
LCK_M_X, _S, _U ロック (クエリー間のブロッキング)
PAGELATCH_EX, _SH, _UP SQL Server 管理ページ (ページ ラッチ)
LATCH_EX, _SH, _UP SQL Server プロセス内のメモリー (非ページ ラッチ)
16
待機リソース ブレイクダウンするポイント
CPU 論理コア単位ユーザーモード/カーネルモード
メモリー OS 上のメモリー領域 (Stack/Private Data)
SQL Server 内メモリー領域 (BPool/Stolen)
ディスク IO キャッシュ維持時間、キャッシュ ヒット論理ドライブ単位、LUN 単位データ、トランザクション ログユーザーデータベース、システム データベース
ネットワーク NIC 単位、送信/受信
ラッチ ラッチ種類
17
• クエリー実行 (CPU/ディスクIO サイズ) の累積値 (*)(*) 但し、プロシージャーキャッシュに残存しているクエリーのみ。
同一クエリープランごとの集約値
• sys.dm_exec_query_stats
• 各クエリー、トランザクションごとの情報CPU使用時間、ディスク IOサイズ、待機原因、待機リソース詳細
• sys.dm_exec_requests, sys.dm_exec_sessions
21
http://sqlnexus.codeplex.com/wikipage?title=Sql2005PerfStatsScript&referringTitle=Home
34
Trace.WriteLine (“処理 1開始”)long start = TraceTime.Now ();
・・・処理1 (データベースアクセス)・・・
long interval = TraceTime.Now - start;Trace.WriteLine (“処理 1終了処理時間=[” + interval + “]”);
36
BROKER_EVENTHANDLER / BROKER_RECEIVE_WAITFOR / BROKER_TRANSMITTER / CHECKPOINT_QUEUE / CHKPT / CLR_AUTO_EVENT / CLR_MANUAL_EVENT / LAZYWRITER_SLEEP / LOGMGR_QUEUE / ONDEMAND_TASK_QUEUE / REQUEST_FOR_DEADLOCK_SEARCH / RESOURCE_QUEUE / SERVER_IDLE_CHECK / SLEEP_BPOOL_FLUSH / SLEEP_DBSTARTUP / SLEEP_DCOMSTARTUP / SLEEP_MSDBSTARTUP / SLEEP_SYSTEMTASK / SLEEP_TASK / SLEEP_TEMPDBSTARTUP / SNI_HTTP_ACCEPT / SQLTRACE_BUFFER_FLUSH / TRACEWRITE / WAIT_FOR_RESULTS / WAITFOR_TASKSHUTDOWN / XE_DISPATCHER_WAIT / XE_TIMER_EVENT
46
http://msdn.microsoft.com/ja-jp/library/ms179984.aspx
http://msdn.microsoft.com/ja-jp/library/ms175066.aspx
http://msdn.microsoft.com/ja-jp/library/ms188743.aspx
http://technet.microsoft.com/ja-jp/library/bb677179.aspx
http://sqlnexus.codeplex.com/
http://sqlnexus.codeplex.com/wikipage?title=Sql2005PerfStatsScript
http://msdn.microsoft.com/ja-jp/library/ms162833.aspx
本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。
Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2014 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。
top related