SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server の状態を取得する際に取得しておきたいパフォーマンスモニター

leave a comment

案件として、SQL Server の診断を実施させていただくことがあるのですが、その際にはパフォーマンスモニターの情報を取得して解析することがあります。

詳細については DELL (もともとは Quest の資料) が公開している SQL Server Perfmon Counters Poster が参考になりますが、私が取得している情報をメモとして。

パフォーマンスモニターを取得する際には、OS 系と SQL Server 系の 2 系統の項目を取得することになるかと思います。
私の場合、OS 系としては以下の項目を取得しています。
# 解析する場合には、対象オブジェクトの一部のカウンターを使用していますが。

OS としての情報はサーバーがどのようにリソースを消費しているかを確認できる情報を取得するようにしています。
Windows Server 2012 からは NUMA 系の情報も取得できるようになっていますので、NUMA ノード単位でのメモリ使用状況の情報を取得することが可能となります。

オブジェクト

Windows Server 2003

Windows Server 2008 R2

Windows Server 2012 R2

Memory

○

○

○

NUMA Node Memory

–

–

○

Paging File

○

○

○

Network Adapter

–

–

○

Network Interface

○

○

○

Physical Disk

○

○

○

Logical Disk

○

○

○

Process

○

○

○

Processor

○

○

○

Server

○

○

○

Server Work Queue

○

○

○

System

○

○

○

 
サーバーの稼働状況とは別に SQL Server の情報も取得を行います。
この際に取得しているオブジェクトが以下になります。
バージョンによって取得できる項目が変わりますので、主要バージョンを表化してみました。

オブジェクト

SQL Server 2005

SQL Server 2008 R2

SQL Server 2012

SQL Server 2014

SQLServer:Access Methods

○

○

○

○

SQLServer:Availability Replica

–

–

○

○

SQLServer:Batch Resp Statistics

–

–

○

○

SQLServer:Broker/DBM Tarnsport

○

○

○

○

SQLServer:Buffer Manager

○

○

○

○

SQLServer:Buffer Node

○

○

○

○

SQLServer:Catalog Metadata

○

○

○

○

SQLServer:Database Replica

–

–

○

○

SQLServer:Databases

○

○

○

○

SQLServer:Deprecated Features

–

○

○

○

SQLServer:Exec Statistics

○

○

○

○

SQLServer:General Statistics

○

○

○

○

SQLServer:HTTP Storage

–

–

–

○

SQLServer:Latches

○

○

○

○

SQLServer:Locks

○

○

○

○

SQLServer:Memory Manager

○

○

○

○

SQLServer:Memory Node

–

–

○

○

SQLServer:Plan Cache

○

○

○

○

SQLServer:Query Execution

–

–

○

–

SQLServer:Resource Pool Stats

–

○

○

○

SQLServer:SQL Errors

○

○

○

○

SQLServer:SQL Statistics

○

○

○

○

SQLServer:Transactions

○

○

○

○

SQLServer:Wait Statistics

○

○

○

○

SQLServer:Workload Group Stats

–

○

○

○

XTP Cursor

–

–

–

○

XTP Garbage Collection

–

–

–

○

XTP Phantom Processor

–

–

–

○

XTP Storage

–

–

–

○

XTP Transaction Log

–

–

–

○

XTP Transactions

–

–

–

○

 
SQL Server のストレージエンジンに関する項目を大体取得している感じですね。
# AlwaysOn と In-Memory OLTP に関する項目も取得しています。
 
パフォーマンスモニターのデータは時系列に取得できますので、情報を解析することで波形を確認することができます。
特定の項目が急に上昇 (スパイク) している場合は他の項目と比較して状況を正しく判断する必要がありますが、そのあたりについてはノウハウとなりますので本投稿では記載しません。
また、パフォーマンスモニターだけでなく、動的管理ビューと組み合わせることで情報を正しく解析することができるようになりますので、パフォーマンスモニターの各種情報を動的管理ビューで見る場合にはどうすればよいかを考えると勉強になるかと思います。
# ここで言いう DMV は sys.dm_os_performance_counters ではなく、それ以外の情報を指しています。
Share

Written by Masayuki.Ozawa

4月 22nd, 2014 at 5:27 pm

Posted in SQL Server

Tagged with

Leave a Reply