SlideShare a Scribd company logo
SQL Server パフォーマンス問題対処 Deep Dive
2
SQL Server
25%
SQL Database
15%
HDInsight
15%
Power BI
30%
Microsoft Azure
その他
15%
3
4
5
6
1. パフォーマンス ボトルネック特定手順
2. パフォーマンス問題対処を支えるツールセット
3. インサイド SQL Server パフォーマンス
4. まとめ
7
8
1) ボトルネックを特定するための情報を採取する
2) インスタンス全体でのボトルネックを特定する
3) ボトルネック原因に繋がる問題クエリーを特定する
(*) 本セッションの説明範囲・説明順序
9
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
待機種類ごとの待機時間(秒)
左図の例の場合、
SQL Server 全体の
ボトルネックは
PAGEIOLATCH_EX
10
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 プロセス内のメモリー (非ページ ラッチ)
13
PAGEIOLATCH_EX
= 4200秒
LCK_M_X
= 580秒
PAGEIOLATCH_EX
= 4215秒
LCK_M_X
= 587秒
15
7
14
15
• DB サーバー全体のボトルネックリソース
• 各待機が発生している時間帯と推移
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
18
19
• リソース(CPU/ディスク IO) 使用量削減を目指す
⇒ 実行プラン確認、いわゆるクエリーチューニングの実施
• 他原因の解消を目指す
⇒ ロック、ラッチ、ネットワーク IO、その他
20
1. パフォーマンス ボトルネック特定手順
2. パフォーマンス問題対処を支えるツールセット
3. インサイド SQL Server パフォーマンス
4. まとめ
21
http://sqlnexus.codeplex.com/wikipage?title=Sql2005PerfStatsScript&referringTitle=Home
22
23
24
25
• パフォーマンス遅延が発生した際の原因分析
• ディスク使用量やリソース使用状況の推移把握
• SQL Server 2008 以降でサポート
26
• GUI で容易に構成、参照可能
27
28
29
30
31
32
1. パフォーマンス ボトルネック特定手順
2. パフォーマンス問題対処を支えるツールセット
3. インサイド SQL Server パフォーマンス
4. まとめ
33
34
Trace.WriteLine (“処理 1 開始”)
long start = TraceTime.Now ();
・・・
処理1 (データベースアクセス)
・・・
long interval = TraceTime.Now - start;
Trace.WriteLine (“処理 1 終了 処理時間=[” + interval + “]”);
35
SQL Server 2005
SQL Server 2008
SQL Server 2008 R2
SQL Server 2012
SQL Server 2014
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
37
38
39
- ストアドプロシージャーで 1 件ずつカーソルフェッチ
40
41
クエリー群で必要な
ストレージの IOPS, bandwidth
物理ストレージ自体の
IOPS, bandwidth>
42
- ページの追加/分割
43
44
1. パフォーマンス ボトルネック特定手順
2. パフォーマンス問題対処を支えるツールセット
3. インサイド SQL Server パフォーマンス
4. まとめ
45
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 の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。

More Related Content

PDF
待ち事象から考える、Sql server の改善ポイント
PDF
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
PDF
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
PDF
Sql server よく聞く設定とその効果
PDF
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
PDF
Sql server 構築 運用 tips
PPTX
ここからはじめる SQL Server の状態取得
PDF
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
待ち事象から考える、Sql server の改善ポイント
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
Sql server よく聞く設定とその効果
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
Sql server 構築 運用 tips
ここからはじめる SQL Server の状態取得
SQL Server運用実践 - 3年間80台の運用経験から20の教訓

What's hot (20)

PPTX
Sql server 運用 101
PPTX
Sql server これだけはやっておこう 最終版
PDF
Always on 可用性グループ 構築時のポイント
PDF
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
PDF
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
PDF
Sql server 2016 always on 可用性グループ new features
PPTX
Sql server のバックアップとリストアの基礎
PPTX
SQL Server Performance Tuning Essentials
PPTX
SQL Server 入門
PDF
Oracle Data Guard による高可用性
PDF
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
PDF
SQL Server パフォーマンスカウンター
PDF
45分で理解する SQL Serverでできることできないこと
PDF
SQL Server中級者のための実践で使えるかもしれないTips集
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PDF
基本に戻ってInnoDBの話をします
PDF
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PDF
SQL Server チューニング基礎
PDF
SQL serverのデータ破損に備える
Sql server 運用 101
Sql server これだけはやっておこう 最終版
Always on 可用性グループ 構築時のポイント
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
Sql server 2016 always on 可用性グループ new features
Sql server のバックアップとリストアの基礎
SQL Server Performance Tuning Essentials
SQL Server 入門
Oracle Data Guard による高可用性
[DI03] DWH スペシャリストが語る! Azure SQL Data Warehouse チューニングの勘所
SQL Server パフォーマンスカウンター
45分で理解する SQL Serverでできることできないこと
SQL Server中級者のための実践で使えるかもしれないTips集
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
基本に戻ってInnoDBの話をします
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
SQL Server チューニング基礎
SQL serverのデータ破損に備える
Ad

Viewers also liked (13)

PDF
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
PDF
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
PDF
MySQLやSSDとかの話 後編
PDF
AWS Black Belt Online Seminar 2017 動画配信 on AWS
PDF
MySQLやSSDとかの話 前編
PDF
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
PPTX
RuntimeUnitTestToolkit for Unity
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
PDF
Share pointを支えるsql server2014最新情報
PDF
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
PDF
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
MySQLやSSDとかの話 後編
AWS Black Belt Online Seminar 2017 動画配信 on AWS
MySQLやSSDとかの話 前編
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
RuntimeUnitTestToolkit for Unity
NextGen Server/Client Architecture - gRPC + Unity + C#
Share pointを支えるsql server2014最新情報
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
Ad

More from Koichiro Sasaki (8)

PDF
SQL Server 2016 R Services + Microsoft R Server 技術資料
PDF
Azure データサービスデザイン検討 (2015/10)
PDF
Microsoft Cognitive Services 概要
PDF
Microsoft Bot framework 概要
PDF
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
PDF
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
PDF
20160121 データサイエンティスト協会 木曜セミナー #5
PDF
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門
SQL Server 2016 R Services + Microsoft R Server 技術資料
Azure データサービスデザイン検討 (2015/10)
Microsoft Cognitive Services 概要
Microsoft Bot framework 概要
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160121 データサイエンティスト協会 木曜セミナー #5
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門

SQL Server パフォーマンス問題対処 Deep Dive