連載
» 2017年02月10日 05時00分 UPDATE

SQL Serverトラブルシューティング(37):データベース処理遅延に対処するための「パフォーマンスログ」を採取する方法 (1/2)

本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の対処に役立てるパフォーマンスログの採取方法」を説明します。

[椎名武史,ユニアデックス株式会社]

連載バックナンバー

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。

 前回は、データベースの処理遅延を対処するために把握すべき、3つの項目を解説しました。今回はその具体的な取得情報の1つである「パフォーマンスログ」の採取方法を紹介します。

パフォーマンスログとは何か

 パフォーマンスログは、Windows標準の「Windows パフォーマンス モニター」を使って採取する、Windows ServerやSQL Serverの動作状況を記録した情報です。採取したパフォーマンスログによって、データベースの処理遅延に何が影響を与えていたのかを推測できます。

 パフォーマンスログを保存しておくには、明示的な「採取設定」が必要となります。そもそも採取の設定がされておらず、処理遅延の状況も再現できない場合には、パフォーマンスログを参照した調査ができません。まず、この設定を行っておきましょう。

パフォーマンスログの採取方法

 パフォーマンスログは、Windows パフォーマンス モニターから「データコレクターセット」を作成することで採取できます。手順は以下の通りです。

  1. Windows パフォーマンス モニターで、「データコレクターセット」→「ユーザー定義」を選択し、「新規作成」から新しいデータコレクターセットの作成ウィザードを開く(図1)
  2. 「手動で作成する」→「次へ」→「データログを作成する/パフォーマンスカウンター」にチェックを入れる
  3. 必要な「パフォーマンスカウンター」を追加する(図2)
  4. 「データの保存先」と「実行ユーザー」を指定し、データコレクターセットを作成する
photo 図1 Windows パフォーマンス モニターから、「データコレクターセット」を作成する
photo 図2 「パフォーマンスカウンター」を追加する

 手順(3)で作業する「パフォーマンスカウンター」は、CPU使用率やメモリ使用量といった、採取する情報ごとの項目のことです。テンプレートも幾つか用意されていますが、SQL Serverの管理を明確に考慮したテンプレートは今のところないようです。少し大変ですが、手動で追加しましょう。SQL Serverのトラブルシューティングを目的とする、筆者推奨のパフォーマンスカウンターは以下の通りです(表1)。

表1 追加しておきたいパフォーマンスカウンター(筆者推奨)
オブジェクト名 カウンター名
Memory % Committed Bytes In Use
Available Bytes
Available MBytes
Cache Faults/sec
Committed Bytes
Free System Page Table Entries
Page Faults/sec
Page Reads/sec
Pages/sec
Pool Nonpaged Bytes
Pool Paged Bytes
Transition Faults/sec
Paging File % Usage
% Usage Peak
PhysicalDisk Avg. Disk Queue Length
Avg. Disk sec/Read
Avg. Disk sec/Write
Current Disk Queue Length
Disk Read Bytes/sec
Disk Write Bytes/sec
Process % Privileged Time
% Processor Time
Handle Count
Page Faults/sec
Private Bytes
Thread Count
Working Set
Working Set - Private
Processor % Idle Time
% Privileged Time
% Processor Time
% User Time
Interrupts/sec
Processor Information % Processor Performance
Parking Status
Processor Frequency
System Context Switches/sec
Processes
Processor Queue Length
Threads
Threads Context Switches/sec
SQLServer:Access Methods Forwarded Records/sec
FreeSpace Scans/sec
Full Scans/sec
Index Searches/sec
Page Splits/sec
Scan Point Revalidations/sec
Workfiles Created/sec
Worktables Created/sec
SQLServer:Buffer Manager Buffer cache hit ratio
Checkpoint pages/sec
Lazy writes/sec
Page life expectancy
Page lookups/sec
Page reads/sec
Page writes/sec
Readahead pages/sec
SQLServer:Cursor Manager by Type Cursor Requests/sec
SQLServer:Databases Data File(s) Size (KB)
Log File(s) Size (KB)
Log File(s) Used Size (KB)
Log Flush Wait Time
Log Flush Waits/sec
Log Growths
Transactions/sec
SQLServer:General Statistics Logins/sec
Logouts/sec
Processes blocked
User Connections
SQLServer:Latches Average Latch Wait Time (ms)
Latch Waits/sec
Total Latch Wait Time (ms)
SQLServer:Locks Average Wait Time (ms)
Lock Timeouts (timeout > 0)/sec
Lock Wait Time (ms)
Lock Waits/sec
Number of Deadlocks/sec
SQLServer:Memory Manager Free Memory (KB)
Memory Grants Pending
Target Server Memory (KB)
Total Server Memory (KB)
SQLServer:Plan Cache Cache Hit Ratio
SQLServer:SQL Errors Errors/sec
SQLServer:SQL Statistics Auto-Param Attempts/sec
Batch Requests/sec
Failed Auto-Param/sec
SQL Attention rate
SQL Compilations/sec
SQL Re-Compilations/sec
SQLServer:Wait Statistics Lock waits
Log write waits
Network IO waits
Non-Page latch waits
Page IO latch waits
Page latch waits
Wait for the worker
SQLServer:Workload Group Stats Active requests
Blocked tasks
CPU usage %
Queued requests
*名前付きインスタンスの場合は、「SQLServer:**」ではなく「MSSQL$<インスタンス名>:**」というオブジェクト名になります

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。