SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
待ち事象から考える、 SQL Server の改善ポイント 
小澤真之 
Microsoft MVP for SQL Server (July 2011 -June 2015) 
D11
自己紹介 
2 db tech showcase 2014 
フリーランスエンジニアとしてSQL Server の案件を中心 に従事しています 
案件等で協力できることがありましたらお声掛けいただけると幸いです 
「SQLServer現状診断」によるSQLServer稼働状況の報告書作成 
「SQL Server 性能情報解析手法の基礎」のセミナー実施 
Microsoft MVP for SQL Server (July 2011 -June 2015) 
コミュニティやブログでSQL Server の情報を発信 
コミュニティ活動 
SQL Server : SQLTO (http://sqlto.net) 
Azure : JAZUG(http://r.jazug.jp/) 
ブログ: SE の雑記(http://engineermemo.wordpress.com) 
2014/11/11
本セッションについて 
3 db tech showcase 2014 
本セッションでは、SQLServerの基本的な待ち事象 についての理解し、今後の改善ポイントを策定す るための、基本的な知識の取得を目的としていま す。 
本セッションの内容はSQL Server 2014 をベースと していますが、一部の内容を除いて2005 ~2012 でも利用することが可能です。 
2014/11/11
最適な処理の実行とは?? 
4 db tech showcase 2014 2014/11/11 
データベースで、最適な処理の実行状態とは?? 
実行した結果が瞬時に取得できる 
待ちが発生せずに結果を取得
待ち事象の概要 
5 db tech showcase 2014 2014/11/11
一般的な処理のライフサイクル 
6 db tech showcase 2014 2014/11/11 
実行状態 (RUNNING) 
実行可能状態 (RUNNABLE) 
待機状態 (SUSPENDED) 
待ち事象が 発生している
SQLServerの待ち事象の種類 
7 db tech showcase 2014 2014/11/11 
Wait Stats 
Latch Stats 
Spinlock Stats 
本セッションの内容
待ち事象の取得方法 
8 db tech showcase 2014 2014/11/11
待ち事象を取得する方法 
9 db tech showcase 2014 2014/11/11 
パフォーマンスモニター 
動的管理ビュー 
拡張イベント
パフォーマンスモニター 
10 db tech showcase 2014 2014/11/11 
SQLServer:WaitStatistics オブジェクトから取得可能 
http://msdn.microsoft.com/ja-jp/library/ms190732.aspx 
一部の待ち事象を時系列で取得することができる 
Lock waits 
Log buffer waits 
Log write waits 
Memory grant queue waits 
Network IO waits 
Non-Page latch waits 
Page IO latch waits 
Page latch waits 
Thread-safe memory objects waits 
Transaction ownership waits 
Wait for the worker 
Workspace synchronization waits
動的管理ビュー1/2 
11 db tech showcase 2014 2014/11/11 
sys.dm_os_wait_statsから取得可能 
http://msdn.microsoft.com/ja-jp/library/ms179984.aspx 
SQL Server 2014 では770 程度の待ち事象の情報を取得可能 
SQLServerのサービスが最後に起動してからの累計値を格納 
パフォーマンスモニター 
動的管理ビュー 
項目 
Lock waits 
LCK_M_xx 
Log write waits 
WRITELOG 
Network IO waits 
ASYNC_NETWORK_IO 
Page IO latch waits 
PAGEIOLATCH_xx 
SOS_SCHEDULER_YIELD
動的管理ビュー2/2 
12 db tech showcase 2014 2014/11/11 
以下の情報を取得可能 
waiting_tasks_count 
wait_time_ms 
max_wait_time_ms 
signal_wait_time_ms 
wait_time_msとsignal_wait_time_msの比率にも注目 
T0 : リソースの要求 
T1 : シグナルの受付 
T2 : リソースの利用開始 
Signal Wait Time (ms) 
Wait Time (ms)
拡張イベント 
13 db tech showcase 2014 2014/11/11 
SQL Server 2008 から利用することができるようになった軽量なパフォーマン ス監視システム 
SQLServer2012からSSMSで容易に設定可能 
セッションごとにsys.dm_os_wait_statsの情報を取得できる 
wait_infoまたはwait_completedイベントから取得可能 
duration : wait timems 
signal_duration: signal wait ms
DEMO 
14 db tech showcase 2014 2014/11/11 
待ち事象の取得
リソースの待ち 
15 db tech showcase 2014 2014/11/11
ディスク 
リソースの待ち1/2 
16 db tech showcase 2014 
アプリケーション 
データファイル 
ログファイル 
CPU 
SQL Server 
メモリ 
2014/11/11
ディスク 
リソースの待ち2/2 
17 db tech showcase 2014 
データファイル 
ログファイル 
CPU 
SQL Server 
メモリ 
ASYNC_NETWORK_IO 
WRITELOG 
アプリケーション 
SOS_SCHEDULER_YIELD 
PAGEIOLATCH_xx 
2014/11/11
待ち事象とリソースの関係 
18 db tech showcase 2014 2014/11/11 
リソース 
待ち事象 
要因 
ネットワーク 
ASYNC_NETWORK_IO 
クライアント(アプリケーション) が サーバーからのデータを処理 
CPU 
SOS_SCHEDULER_YIELD 
他のタスクの実行にスケジューラーを 解放 
メモリ (ディスク) 
PAGEIOLATCH_xx 
I/O要求でバッファーラッチが待機 
ディスク 
WRITELOG 
ログフラッシュの完了を待機
待ち事象の見方 
19 db tech showcase 2014 2014/11/11 
待ち事象が発生している= リソースが不足している 
ではない 
性能以上の待ち事象が発生しているのが問題 
リソース 
考慮点 
ネットワーク 
クライアント/サーバーの帯域上限に達した状態を推移している 
ネットワークキューが頻繁に発生している 
CPU 
CPUの使用率が100% に達した状態を推移している 
CPUキューが頻繁に発生している 
メモリ 
キャッシュのヒット率が低い 
ディスクからの読み取りに時間がかかっている 
ディスク 
ディスクからの読み取りに時間がかかっている 
ログの書き込みに時間がかかっている
パフォーマンスモニターとの対比 
20 db tech showcase 2014 2014/11/11 
パフォーマンスモニターと待ち事象を対比し、リソースの使用状況を把握 
待ち事象 
パフォーマンスモニター 
ASYNC_NETWORK_IO 
NetworkInterface¥BytesRecived/sec 
Network Interface¥Bytes Sent/sec 
Network Interface¥Bytes Total/sec 
Network Interface¥Output Queue length 
SOS_SCHEDULER_YIELD 
Processor¥% Processor Time 
Process(sqlservr)¥%Processor Time 
System¥Processor Queue Length 
SQLServer:SQLStatistics¥Batch Request/sec 
PAGEIOLATCH_xx 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:BufferManager¥Buffer cache hit ratio 
SQLServer:BufferManager¥Page life expectancy 
WRITELOG 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:Database¥LogFlush Waits/sec
CPU に関連する待ち 
21 db tech showcase 2014 2014/11/11
CPUで処理できる上限 
22 db tech showcase 2014 2014/11/11 
CPUが瞬間的に実行できるのは一つの処理 
CPU 
処理A 
処理B 
処理A 
CPU 
スケジューラーの 譲渡が発生する 
SOS_SCHEDULER_YIELD
パフォーマンスモニターとの対比 
23 db tech showcase 2014 2014/11/11 
待ち事象 
パフォーマンスモニター 
ASYNC_NETWORK_IO 
NetworkInterface¥BytesRecived/sec 
Network Interface¥Bytes Sent/sec 
Network Interface¥Bytes Total/sec 
Network Interface¥Output Queue length 
SOS_SCHEDULER_YIELD 
Processor¥% Processor Time 
Process(sqlservr)¥%Processor Time 
System¥Processor Queue Length 
SQLServer:SQLStatistics¥Batch Request/sec 
PAGEIOLATCH_xx 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:BufferManager¥Buffer cache hit ratio 
SQLServer:BufferManager¥Page life expectancy 
WRITELOG 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:Database¥LogFlush Waits/sec
DEMO 
24 db tech showcase 2014 2014/11/11 
SOS_SCHEDULER_YIELDの確認
CPU の利用時間 
25 db tech showcase 2014 2014/11/11 
CPUを長い時間使用しているクエリに注目 
CPU時間(Worker Time/ CPU Time) 
クエリの実行時間(Elapsed Time) 
CPU時間の長いクエリは以下から調査可能 
プランキャッシュから取得 
sys.dm_exec_query_statshttp://msdn.microsoft.com/ja-jp/library/ms189741.aspx 
実行中のセッションから取得 
sys.dm_exec_sessionshttp://msdn.microsoft.com/ja-jp/library/ms176013.aspx 
利用状況モニター
クエリのコンパイル 
26 db tech showcase 2014 2014/11/11 
クエリの初回実行時にはクエリのコンパイルが行われる 
クエリのコンパイルに使用されたリソースは実行プランから取得可能 
CompileTime(ms) 
CompileMemory(KB) 
CompileCPU(ms) 
http://schemas.microsoft.com/sqlserver/2004/07/showplan 
過度なコンパイルの実行はCPUの負荷上昇にもつながる 
ストアドプロシージャ/ パラメーター化されていないクエリの大量の実行 
類似のアドホッククエリの大量キャッシュはコンパイルコストが高い 
SELECT* FROM Table_1 WHERE Col1 = ‘AAAAA’ 
SELECT* FROM Table_1 WHERE Col1 = ‘BBBBB’
DEMO 
27 db tech showcase 2014 2014/11/11 
CPU改善のためのクエリ取得
メモリに関連する待ち 
28 db tech showcase 2014 2014/11/11
SQL Sever の基本的なメモリ構造 
29 db tech showcase 2014 2014/11/11 
Memory Manager : Database Cache Memory (KB) 
Plan Cache : Cache Pages 
Memory Manager : Connection Memory (KB) 
Memory Manager : Granted Workspace Memory (KB) 
Memory Manager : Lock Memory (KB) 
一時利用 
キャッシュ 
今回の対象
SQL Server のI/O 
30 db tech showcase 2014 2014/11/11 
ディスク 
データファイル 
ログファイル 
CPU 
SQL Server 
メモリ 
論理I/O 
物理I/O 
PAGEIOLATCH 
どちらも 
CPUを利用
パフォーマンスモニターとの対比 
31 db tech showcase 2014 2014/11/11 
待ち事象 
パフォーマンスモニター 
ASYNC_NETWORK_IO 
NetworkInterface¥BytesRecived/sec 
Network Interface¥Bytes Sent/sec 
Network Interface¥Bytes Total/sec 
Network Interface¥Output Queue length 
SOS_SCHEDULER_YIELD 
Processor¥% Processor Time 
Process(sqlservr)¥%Processor Time 
System¥Processor Queue Length 
SQLServer:SQLStatistics¥Batch Request/sec 
PAGEIOLATCH_xx 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:BufferManager¥Buffer cache hit ratio 
SQLServer:BufferManager¥Page life expectancy 
WRITELOG 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:Database¥LogFlush Waits/sec
物理I/O を減らすためには 
32 db tech showcase 2014 2014/11/11 
物理I/O の回数を減らす 
Scan操作ではなくSeek操作による検索効率の改善 
検索効率の改善による処理時間の短縮は、CPU使用率の改善にもつながる 
読み取るページ数の削減 
インデックスの断片化の解消 
データの圧縮機能 
行/ データ圧縮 
列ストアインデックス 
データのキャッシュ領域を有効に活用 
キャッシュヒット率を上げる 
プランキャッシュを減らすことでデータキャッシュの領域を増加 
データ圧縮によりキャッシュできるページを増やす 
圧縮されたデータは圧縮された状態でメモリにキャッシュされる 
Enterprise Edition の機能
DEMO 
33 db tech showcase 2014 2014/11/11 
論理I/O と物理I/O
ディスクの待ち 
34 db tech showcase 2014 2014/11/11
ディスクの基本性能を把握する 
35 db tech showcase 2014 2014/11/11 
SQLServerのI/Oでディスクの基本性能を取得するためのツールを利用 
SQLIO 
SQLIO Disk Subsystem Benchmark Tool http://www.microsoft.com/en-us/download/details.aspx?id=20163 
SQLIOSIM 
C:¥Program Files¥Microsoft SQL Server¥<インスタンスID>¥MSSQL¥Binn 
サーバーの構築が完了したタイミングで測定することを推奨 
HD 
SSD 
1 スレッド 
10スレッド 
1 スレッド 
10スレッド 
8KB 
64KB 
8KB 
64KB 
8KB 
64KB 
8KB 
64KB 
Sequential 
Read 
IO/sec 
8,240 
2,753 
16,270 
3,851 
7,362 
2389 
24,039 
3,135 
MBytes/sec 
64 
172 
127 
240 
57 
149 
187 
195 
Write 
IO/sec 
8,752 
2,512 
17,728 
3,859 
7,625 
1678 
21,026 
2,704 
MBytes/sec 
68 
157 
138 
241 
59 
104 
164 
169 
Random 
Read 
IO/sec 
158 
143 
247 
222 
4,718 
1920 
18,322 
3,049 
MBytes/sec 
1 
8 
1 
14 
36 
119 
143 
190 
Write 
IO/sec 
810 
710 
875 
779 
7,600 
1,637 
18,347 
2,417 
MBytes/sec 
6 
44 
6 
49 
59 
102 
143 
151 
SQLIOSIM を使用したディスク性能の測定例
2 種類の待ちに注目 
36 db tech showcase 2014 2014/11/11 
PAGEIOLATCH 
データの読み取り 
メモリに関する待ちと同じアプローチ 
WRITELOG 
データの書き込み
LogBuffer 
ログの書き込みの基本動作 
37 db tech showcase 2014 2014/11/11 
ディスク 
データファイル 
ログファイル 
CPU 
SQL Server 
メモリ 
LogFlush 
WRITELOG
パフォーマンスモニターとの対比 
38 db tech showcase 2014 2014/11/11 
待ち事象 
パフォーマンスモニター 
ASYNC_NETWORK_IO 
NetworkInterface¥BytesRecived/sec 
Network Interface¥Bytes Sent/sec 
Network Interface¥Bytes Total/sec 
Network Interface¥Output Queue length 
SOS_SCHEDULER_YIELD 
Processor¥% Processor Time 
Process(sqlservr)¥%Processor Time 
System¥Processor Queue Length 
SQLServer:SQLStatistics¥Batch Request/sec 
PAGEIOLATCH_xx 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:BufferManager¥Buffer cache hit ratio 
SQLServer:BufferManager¥Page life expectancy 
WRITELOG 
Logical Disk (Physical Disk)¥Current Disk Queue Length 
Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec 
Logical Disk (Physical Disk)¥Disk Read/ Write /sec 
SQLServer:Database¥LogFlush Waits/sec
ログフラッシュの発生タイミング 
39 db tech showcase 2014 2014/11/11 
DECLARE @cntint= 1 
BEGIN TRAN 
WHILE (@cnt<= 10000) 
BEGIN 
INSERT INTO WriteLogTestVALUES(NEWID()) 
SET @cnt+= 1 
END 
COMMIT TRAN 
ログフラッシュ 
ログレコードがディスクに書き込まれ完全持続性が保障される 
ログフラッシュの完了を待たずに処理を完了させる→ 遅延持続性 
DECLARE @cntint= 1 
WHILE (@cnt<= 10000) 
BEGIN 
INSERT INTO WriteLogTestVALUES(NEWID()) 
SET @cnt+= 1 
END
DEMO 
40 db tech showcase 2014 2014/11/11 
WRITELOGの確認
まとめ 
41 db tech showcase 2014 2014/11/11 
最初の一歩として、以下の待ち事象とパフォーマンスモニターを 組み合わせることで全体的なリソースの使用状況を把握すること ができる 
SOS_SCHEDULER_YIELD 
PAGEIOLATCH_xx 
WRITELOG 
リソースの使用状況を把握することで改善ポイントを検討できる

Weitere ähnliche Inhalte

Was ist angesagt?

Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Masayuki Ozawa
 
Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版elanlilac
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓貴仁 大和屋
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方Fujishiro Takuya
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集Sho Okada
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之Insight Technology, Inc.
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」裕之 木下
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 

Was ist angesagt? (20)

Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
 
Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版
 
Metaspace
MetaspaceMetaspace
Metaspace
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 

Ähnlich wie 待ち事象から考える、Sql server の改善ポイント

Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報Atsuo Yamasaki
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?Masayuki Ozawa
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Yukio Kumazawa
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep diveMasayuki Ozawa
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...Insight Technology, Inc.
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewMasayuki Ozawa
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...Insight Technology, Inc.
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介Oda Shinsuke
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば貴仁 大和屋
 
SQL Azure Management and Security
SQL Azure Management and SecuritySQL Azure Management and Security
SQL Azure Management and Securityjunichi anno
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能Masayuki Ozawa
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
SQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data PlatformSQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data PlatformDaiyu Hatakeyama
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するMasayuki Ozawa
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...Suguru Ito
 

Ähnlich wie 待ち事象から考える、Sql server の改善ポイント (20)

Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep dive
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP Overview
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば
 
SQL Azure Management and Security
SQL Azure Management and SecuritySQL Azure Management and Security
SQL Azure Management and Security
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
SQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data PlatformSQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data Platform
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
 

Mehr von Masayuki Ozawa

db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!Masayuki Ozawa
 
Sql database managed instance overview and internals
Sql database managed instance overview and internalsSql database managed instance overview and internals
Sql database managed instance overview and internalsMasayuki Ozawa
 
Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheetMasayuki Ozawa
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)Masayuki Ozawa
 
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tipsde:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux TipsMasayuki Ozawa
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシートMasayuki Ozawa
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモMasayuki Ozawa
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートMasayuki Ozawa
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Masayuki Ozawa
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresMasayuki Ozawa
 
DBA から開発者への情報提供
DBA から開発者への情報提供DBA から開発者への情報提供
DBA から開発者への情報提供Masayuki Ozawa
 
Sql server 2016 ctp 3.0 新機能
Sql server 2016 ctp 3.0 新機能Sql server 2016 ctp 3.0 新機能
Sql server 2016 ctp 3.0 新機能Masayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料Masayuki Ozawa
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料Masayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internalsMasayuki Ozawa
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントMasayuki Ozawa
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Masayuki Ozawa
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 

Mehr von Masayuki Ozawa (20)

db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
 
Sql database managed instance overview and internals
Sql database managed instance overview and internalsSql database managed instance overview and internals
Sql database managed instance overview and internals
 
Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheet
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)
 
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tipsde:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
DBA から開発者への情報提供
DBA から開発者への情報提供DBA から開発者への情報提供
DBA から開発者への情報提供
 
Sql server 2016 ctp 3.0 新機能
Sql server 2016 ctp 3.0 新機能Sql server 2016 ctp 3.0 新機能
Sql server 2016 ctp 3.0 新機能
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internals
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイント
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 

待ち事象から考える、Sql server の改善ポイント

  • 1. 待ち事象から考える、 SQL Server の改善ポイント 小澤真之 Microsoft MVP for SQL Server (July 2011 -June 2015) D11
  • 2. 自己紹介 2 db tech showcase 2014 フリーランスエンジニアとしてSQL Server の案件を中心 に従事しています 案件等で協力できることがありましたらお声掛けいただけると幸いです 「SQLServer現状診断」によるSQLServer稼働状況の報告書作成 「SQL Server 性能情報解析手法の基礎」のセミナー実施 Microsoft MVP for SQL Server (July 2011 -June 2015) コミュニティやブログでSQL Server の情報を発信 コミュニティ活動 SQL Server : SQLTO (http://sqlto.net) Azure : JAZUG(http://r.jazug.jp/) ブログ: SE の雑記(http://engineermemo.wordpress.com) 2014/11/11
  • 3. 本セッションについて 3 db tech showcase 2014 本セッションでは、SQLServerの基本的な待ち事象 についての理解し、今後の改善ポイントを策定す るための、基本的な知識の取得を目的としていま す。 本セッションの内容はSQL Server 2014 をベースと していますが、一部の内容を除いて2005 ~2012 でも利用することが可能です。 2014/11/11
  • 4. 最適な処理の実行とは?? 4 db tech showcase 2014 2014/11/11 データベースで、最適な処理の実行状態とは?? 実行した結果が瞬時に取得できる 待ちが発生せずに結果を取得
  • 5. 待ち事象の概要 5 db tech showcase 2014 2014/11/11
  • 6. 一般的な処理のライフサイクル 6 db tech showcase 2014 2014/11/11 実行状態 (RUNNING) 実行可能状態 (RUNNABLE) 待機状態 (SUSPENDED) 待ち事象が 発生している
  • 7. SQLServerの待ち事象の種類 7 db tech showcase 2014 2014/11/11 Wait Stats Latch Stats Spinlock Stats 本セッションの内容
  • 8. 待ち事象の取得方法 8 db tech showcase 2014 2014/11/11
  • 9. 待ち事象を取得する方法 9 db tech showcase 2014 2014/11/11 パフォーマンスモニター 動的管理ビュー 拡張イベント
  • 10. パフォーマンスモニター 10 db tech showcase 2014 2014/11/11 SQLServer:WaitStatistics オブジェクトから取得可能 http://msdn.microsoft.com/ja-jp/library/ms190732.aspx 一部の待ち事象を時系列で取得することができる Lock waits Log buffer waits Log write waits Memory grant queue waits Network IO waits Non-Page latch waits Page IO latch waits Page latch waits Thread-safe memory objects waits Transaction ownership waits Wait for the worker Workspace synchronization waits
  • 11. 動的管理ビュー1/2 11 db tech showcase 2014 2014/11/11 sys.dm_os_wait_statsから取得可能 http://msdn.microsoft.com/ja-jp/library/ms179984.aspx SQL Server 2014 では770 程度の待ち事象の情報を取得可能 SQLServerのサービスが最後に起動してからの累計値を格納 パフォーマンスモニター 動的管理ビュー 項目 Lock waits LCK_M_xx Log write waits WRITELOG Network IO waits ASYNC_NETWORK_IO Page IO latch waits PAGEIOLATCH_xx SOS_SCHEDULER_YIELD
  • 12. 動的管理ビュー2/2 12 db tech showcase 2014 2014/11/11 以下の情報を取得可能 waiting_tasks_count wait_time_ms max_wait_time_ms signal_wait_time_ms wait_time_msとsignal_wait_time_msの比率にも注目 T0 : リソースの要求 T1 : シグナルの受付 T2 : リソースの利用開始 Signal Wait Time (ms) Wait Time (ms)
  • 13. 拡張イベント 13 db tech showcase 2014 2014/11/11 SQL Server 2008 から利用することができるようになった軽量なパフォーマン ス監視システム SQLServer2012からSSMSで容易に設定可能 セッションごとにsys.dm_os_wait_statsの情報を取得できる wait_infoまたはwait_completedイベントから取得可能 duration : wait timems signal_duration: signal wait ms
  • 14. DEMO 14 db tech showcase 2014 2014/11/11 待ち事象の取得
  • 15. リソースの待ち 15 db tech showcase 2014 2014/11/11
  • 16. ディスク リソースの待ち1/2 16 db tech showcase 2014 アプリケーション データファイル ログファイル CPU SQL Server メモリ 2014/11/11
  • 17. ディスク リソースの待ち2/2 17 db tech showcase 2014 データファイル ログファイル CPU SQL Server メモリ ASYNC_NETWORK_IO WRITELOG アプリケーション SOS_SCHEDULER_YIELD PAGEIOLATCH_xx 2014/11/11
  • 18. 待ち事象とリソースの関係 18 db tech showcase 2014 2014/11/11 リソース 待ち事象 要因 ネットワーク ASYNC_NETWORK_IO クライアント(アプリケーション) が サーバーからのデータを処理 CPU SOS_SCHEDULER_YIELD 他のタスクの実行にスケジューラーを 解放 メモリ (ディスク) PAGEIOLATCH_xx I/O要求でバッファーラッチが待機 ディスク WRITELOG ログフラッシュの完了を待機
  • 19. 待ち事象の見方 19 db tech showcase 2014 2014/11/11 待ち事象が発生している= リソースが不足している ではない 性能以上の待ち事象が発生しているのが問題 リソース 考慮点 ネットワーク クライアント/サーバーの帯域上限に達した状態を推移している ネットワークキューが頻繁に発生している CPU CPUの使用率が100% に達した状態を推移している CPUキューが頻繁に発生している メモリ キャッシュのヒット率が低い ディスクからの読み取りに時間がかかっている ディスク ディスクからの読み取りに時間がかかっている ログの書き込みに時間がかかっている
  • 20. パフォーマンスモニターとの対比 20 db tech showcase 2014 2014/11/11 パフォーマンスモニターと待ち事象を対比し、リソースの使用状況を把握 待ち事象 パフォーマンスモニター ASYNC_NETWORK_IO NetworkInterface¥BytesRecived/sec Network Interface¥Bytes Sent/sec Network Interface¥Bytes Total/sec Network Interface¥Output Queue length SOS_SCHEDULER_YIELD Processor¥% Processor Time Process(sqlservr)¥%Processor Time System¥Processor Queue Length SQLServer:SQLStatistics¥Batch Request/sec PAGEIOLATCH_xx Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:BufferManager¥Buffer cache hit ratio SQLServer:BufferManager¥Page life expectancy WRITELOG Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:Database¥LogFlush Waits/sec
  • 21. CPU に関連する待ち 21 db tech showcase 2014 2014/11/11
  • 22. CPUで処理できる上限 22 db tech showcase 2014 2014/11/11 CPUが瞬間的に実行できるのは一つの処理 CPU 処理A 処理B 処理A CPU スケジューラーの 譲渡が発生する SOS_SCHEDULER_YIELD
  • 23. パフォーマンスモニターとの対比 23 db tech showcase 2014 2014/11/11 待ち事象 パフォーマンスモニター ASYNC_NETWORK_IO NetworkInterface¥BytesRecived/sec Network Interface¥Bytes Sent/sec Network Interface¥Bytes Total/sec Network Interface¥Output Queue length SOS_SCHEDULER_YIELD Processor¥% Processor Time Process(sqlservr)¥%Processor Time System¥Processor Queue Length SQLServer:SQLStatistics¥Batch Request/sec PAGEIOLATCH_xx Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:BufferManager¥Buffer cache hit ratio SQLServer:BufferManager¥Page life expectancy WRITELOG Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:Database¥LogFlush Waits/sec
  • 24. DEMO 24 db tech showcase 2014 2014/11/11 SOS_SCHEDULER_YIELDの確認
  • 25. CPU の利用時間 25 db tech showcase 2014 2014/11/11 CPUを長い時間使用しているクエリに注目 CPU時間(Worker Time/ CPU Time) クエリの実行時間(Elapsed Time) CPU時間の長いクエリは以下から調査可能 プランキャッシュから取得 sys.dm_exec_query_statshttp://msdn.microsoft.com/ja-jp/library/ms189741.aspx 実行中のセッションから取得 sys.dm_exec_sessionshttp://msdn.microsoft.com/ja-jp/library/ms176013.aspx 利用状況モニター
  • 26. クエリのコンパイル 26 db tech showcase 2014 2014/11/11 クエリの初回実行時にはクエリのコンパイルが行われる クエリのコンパイルに使用されたリソースは実行プランから取得可能 CompileTime(ms) CompileMemory(KB) CompileCPU(ms) http://schemas.microsoft.com/sqlserver/2004/07/showplan 過度なコンパイルの実行はCPUの負荷上昇にもつながる ストアドプロシージャ/ パラメーター化されていないクエリの大量の実行 類似のアドホッククエリの大量キャッシュはコンパイルコストが高い SELECT* FROM Table_1 WHERE Col1 = ‘AAAAA’ SELECT* FROM Table_1 WHERE Col1 = ‘BBBBB’
  • 27. DEMO 27 db tech showcase 2014 2014/11/11 CPU改善のためのクエリ取得
  • 28. メモリに関連する待ち 28 db tech showcase 2014 2014/11/11
  • 29. SQL Sever の基本的なメモリ構造 29 db tech showcase 2014 2014/11/11 Memory Manager : Database Cache Memory (KB) Plan Cache : Cache Pages Memory Manager : Connection Memory (KB) Memory Manager : Granted Workspace Memory (KB) Memory Manager : Lock Memory (KB) 一時利用 キャッシュ 今回の対象
  • 30. SQL Server のI/O 30 db tech showcase 2014 2014/11/11 ディスク データファイル ログファイル CPU SQL Server メモリ 論理I/O 物理I/O PAGEIOLATCH どちらも CPUを利用
  • 31. パフォーマンスモニターとの対比 31 db tech showcase 2014 2014/11/11 待ち事象 パフォーマンスモニター ASYNC_NETWORK_IO NetworkInterface¥BytesRecived/sec Network Interface¥Bytes Sent/sec Network Interface¥Bytes Total/sec Network Interface¥Output Queue length SOS_SCHEDULER_YIELD Processor¥% Processor Time Process(sqlservr)¥%Processor Time System¥Processor Queue Length SQLServer:SQLStatistics¥Batch Request/sec PAGEIOLATCH_xx Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:BufferManager¥Buffer cache hit ratio SQLServer:BufferManager¥Page life expectancy WRITELOG Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:Database¥LogFlush Waits/sec
  • 32. 物理I/O を減らすためには 32 db tech showcase 2014 2014/11/11 物理I/O の回数を減らす Scan操作ではなくSeek操作による検索効率の改善 検索効率の改善による処理時間の短縮は、CPU使用率の改善にもつながる 読み取るページ数の削減 インデックスの断片化の解消 データの圧縮機能 行/ データ圧縮 列ストアインデックス データのキャッシュ領域を有効に活用 キャッシュヒット率を上げる プランキャッシュを減らすことでデータキャッシュの領域を増加 データ圧縮によりキャッシュできるページを増やす 圧縮されたデータは圧縮された状態でメモリにキャッシュされる Enterprise Edition の機能
  • 33. DEMO 33 db tech showcase 2014 2014/11/11 論理I/O と物理I/O
  • 34. ディスクの待ち 34 db tech showcase 2014 2014/11/11
  • 35. ディスクの基本性能を把握する 35 db tech showcase 2014 2014/11/11 SQLServerのI/Oでディスクの基本性能を取得するためのツールを利用 SQLIO SQLIO Disk Subsystem Benchmark Tool http://www.microsoft.com/en-us/download/details.aspx?id=20163 SQLIOSIM C:¥Program Files¥Microsoft SQL Server¥<インスタンスID>¥MSSQL¥Binn サーバーの構築が完了したタイミングで測定することを推奨 HD SSD 1 スレッド 10スレッド 1 スレッド 10スレッド 8KB 64KB 8KB 64KB 8KB 64KB 8KB 64KB Sequential Read IO/sec 8,240 2,753 16,270 3,851 7,362 2389 24,039 3,135 MBytes/sec 64 172 127 240 57 149 187 195 Write IO/sec 8,752 2,512 17,728 3,859 7,625 1678 21,026 2,704 MBytes/sec 68 157 138 241 59 104 164 169 Random Read IO/sec 158 143 247 222 4,718 1920 18,322 3,049 MBytes/sec 1 8 1 14 36 119 143 190 Write IO/sec 810 710 875 779 7,600 1,637 18,347 2,417 MBytes/sec 6 44 6 49 59 102 143 151 SQLIOSIM を使用したディスク性能の測定例
  • 36. 2 種類の待ちに注目 36 db tech showcase 2014 2014/11/11 PAGEIOLATCH データの読み取り メモリに関する待ちと同じアプローチ WRITELOG データの書き込み
  • 37. LogBuffer ログの書き込みの基本動作 37 db tech showcase 2014 2014/11/11 ディスク データファイル ログファイル CPU SQL Server メモリ LogFlush WRITELOG
  • 38. パフォーマンスモニターとの対比 38 db tech showcase 2014 2014/11/11 待ち事象 パフォーマンスモニター ASYNC_NETWORK_IO NetworkInterface¥BytesRecived/sec Network Interface¥Bytes Sent/sec Network Interface¥Bytes Total/sec Network Interface¥Output Queue length SOS_SCHEDULER_YIELD Processor¥% Processor Time Process(sqlservr)¥%Processor Time System¥Processor Queue Length SQLServer:SQLStatistics¥Batch Request/sec PAGEIOLATCH_xx Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:BufferManager¥Buffer cache hit ratio SQLServer:BufferManager¥Page life expectancy WRITELOG Logical Disk (Physical Disk)¥Current Disk Queue Length Logical Disk (Physical Disk)¥Disk Read/ Write Bytes/sec Logical Disk (Physical Disk)¥Disk Read/ Write /sec SQLServer:Database¥LogFlush Waits/sec
  • 39. ログフラッシュの発生タイミング 39 db tech showcase 2014 2014/11/11 DECLARE @cntint= 1 BEGIN TRAN WHILE (@cnt<= 10000) BEGIN INSERT INTO WriteLogTestVALUES(NEWID()) SET @cnt+= 1 END COMMIT TRAN ログフラッシュ ログレコードがディスクに書き込まれ完全持続性が保障される ログフラッシュの完了を待たずに処理を完了させる→ 遅延持続性 DECLARE @cntint= 1 WHILE (@cnt<= 10000) BEGIN INSERT INTO WriteLogTestVALUES(NEWID()) SET @cnt+= 1 END
  • 40. DEMO 40 db tech showcase 2014 2014/11/11 WRITELOGの確認
  • 41. まとめ 41 db tech showcase 2014 2014/11/11 最初の一歩として、以下の待ち事象とパフォーマンスモニターを 組み合わせることで全体的なリソースの使用状況を把握すること ができる SOS_SCHEDULER_YIELD PAGEIOLATCH_xx WRITELOG リソースの使用状況を把握することで改善ポイントを検討できる