パフォーマンス監視およびチューニング用のツール
更新 : 2006 年 7 月 17 日
Microsoft SQL Server には、SQL Server のイベントを監視したり、物理データベース デザインをチューニングしたりするための広範なツール セットが用意されています。どのツールを選択するかは、実行する監視またはチューニングの種類や、監視するイベントによって異なります。
SQL Server の監視およびチューニング用のツールは次のとおりです。
ツール
説明
SQL Server Profiler では、バッチまたはトランザクションの開始などのエンジン プロセス イベントが追跡され、サーバーおよびデータベースの利用状況 (デッドロック、致命的なエラー、ログインの利用状況など) を監視できます。SQL Server Profiler のデータを SQL Server テーブルまたはファイルにキャプチャして、後で分析できます。また、SQL Server でキャプチャしたイベントをステップごとに再生して、何が起こったかを正確に確認することもできます。
システム モニタでは、使用中のバッファ マネージャ ページ要求の数などのリソース使用量が主に追跡され、イベントを監視するための定義済みオブジェクトおよびカウンタやユーザー定義カウンタを使用して、サーバーのパフォーマンスおよび利用状況を監視できます。システム モニタ (Microsoft Windows NT 4.0 の場合はパフォーマンス モニタ) は、イベントに関するデータではなく、メモリの使用量、アクティブなトランザクションの数、ブロックされたロックの数、CPU の利用状況など、イベントの数と比率を収集します。特定のカウンタにしきい値を設定して、オペレータに通知する警告を生成できます。
システム モニタは Microsoft Windows Server および Windows オペレーティング システムで機能します。システム モニタでは、Windows NT 4.0 以降で実行されている SQL Server のインスタンスをリモートまたはローカルで監視できます。
SQL Server Profiler とシステム モニタの重要な違いは、SQL Server Profiler ではデータベース エンジンのイベントが監視されるのに対し、システム モニタではサーバー プロセスに関連したリソース使用量が監視されることです。
利用状況モニタを開く方法 (SQL Server Management Studio)
SQL Server Management Studio の利用状況モニタには、次の情報がグラフィカルに表示されます。
- SQL Server のインスタンスで実行中のプロセス
- ブロックされているプロセス
- ロック
- ユーザーの利用状況
このウィンドウは現在の利用状況をアドホック表示するときに便利です。
トレースを作成、フィルタ、および定義する Transact-SQL ストアド プロシージャは次のとおりです。
- sp_trace_create (Transact-SQL)
- sp_trace_generateevent (Transact-SQL)
- sp_trace_setevent (Transact-SQL)
- sp_trace_setfilter (Transact-SQL)
- sp_trace_setstatus (Transact-SQL)
Windows アプリケーション イベント ログでは、Windows Server と Windows オペレーティング システム全体で発生しているイベントと、SQL Server、SQL Server エージェント、および全文検索で発生しているイベントの全般的な概要が示されます。他のツールでは提供されない SQL Server のイベントに関する情報が含まれています。SQL Server に関連する問題のトラブルシューティングでエラー ログの情報を使用できます。
データベース エンジンのストアド プロシージャ (Transact-SQL)
次の SQL Server システム ストアド プロシージャでは、多くの監視タスクの強力な代替方法が提供されています。
ストアド プロシージャ
説明
sp_who (Transact-SQL)このシステム ストアド プロシージャは、現在実行中のステートメントとそのステートメントがブロックされているかどうかなど、現在の SQL Server ユーザーおよびプロセスに関するスナップショット情報を報告します。
sp_lock (Transact-SQL)このシステム ストアド プロシージャは、オブジェクト ID、インデックス ID、ロックの種類、ロックを適用する種類またはリソースなど、ロックに関するスナップショット情報を報告します。
sp_spaceused (Transact-SQL)このシステム ストアド プロシージャは、テーブルまたはデータベース全体が使用している現在のディスク容量の推定値を表示します。
sp_monitor (Transact-SQL)CPU 使用量、I/O 使用量、sp_monitor を最後に実行してからのアイドル時間などの統計データを表示します。
DBCC (データベース コンソール コマンド) ステートメントによって、パフォーマンス統計とデータベースの論理的および物理的一貫性を確認できます。
組み込み関数では、サーバーが起動してからの SQL Server の利用状況に関するスナップショット統計が表示されます。この統計は、あらかじめ定義された SQL Server カウンタに格納されます。たとえば、@@CPU_BUSY には、CPU が SQL Server コードを実行している時間が格納されます。@@CONNECTIONS には、SQL Server の接続数または接続試行数が格納されます。@@PACKET_ERRORS には、SQL Server 接続で発生するネットワーク パケット数が格納されます。
トレース フラグでは、サーバー内の特定の利用状況に関する情報が示されます。このトレース フラグを使用して、問題やデッドロック チェーンなどのパフォーマンスの問題を診断します。
データベース エンジン チューニング アドバイザでは、チューニングするデータベースに対して実行した Transact-SQL ステートメントのパフォーマンス効果が分析されます。データベース エンジン チューニング アドバイザでは、インデックス、インデックス付きビュー、およびパーティションを追加、削除、または変更するための推奨設定が提供されます。
監視ツールの選択
どの監視ツールを使用するかは、監視対象のイベントまたは利用状況によって決まります。
イベントまたは利用状況 | SQL Server Profiler | システム モニタ | 利用状況モニタ | Transact-SQL | エラー ログ |
---|---|---|---|---|---|
傾向分析 |
○ |
○ |
|
|
|
キャプチャしたイベントの再生 |
○ |
|
|
|
|
アドホック監視 |
○ |
|
○ |
○ |
○ |
警告の生成 |
|
○ |
|
|
|
グラフィック インターフェイス |
○ |
○ |
○ |
|
○ |
カスタム アプリケーション内での使用 |
○ 1 |
|
|
○ |
|
1 SQL Server Profiler のシステム ストアド プロシージャを使用
Windows 監視ツール
Windows オペレーティング システムおよび Windows Server 2003 では、次の監視ツールが提供されています。
ツール | 説明 |
---|---|
タスク マネージャ |
システム上で実行中のプロセスやアプリケーションの概要を示します。 |
ネットワーク モニタ エージェント |
ネットワーク トラフィックを監視します。 |
Windows オペレーティング システムまたは Windows Server ツールの詳細については、Windows のマニュアルを参照してください。
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|