次の方法で共有


パフォーマンスの監視およびチューニング ツール

適用対象:SQL Server

Microsoft SQL Server では、SQL Server のイベントを監視したり、物理データベース デザインをチューニングしたりするための広範なツール セットを用意しています。 どのツールを選択するかは、実行する監視またはチューニングの種類や、監視するイベントによって異なります。

SQL Server の監視およびチューニング用のツールは次のとおりです。

ツール 説明
SQL データベース関数とは 組み込み関数では、サーバーが起動してからの SQL Server の利用状況に関するスナップショット統計が表示されます。この統計は、あらかじめ定義された SQL Server カウンターに格納されます。 たとえば、@@CPU_BUSY には、CPU が SQL Server コードを実行している時間量が格納されます。@@CONNECTIONS には、SQL Server の接続数または接続試行数が格納されます。@@PACKET_ERRORS には、SQL Server 接続で発生するネットワーク パケット数が格納されます。
DBCC DBCC (データベース コンソール コマンド) ステートメントによって、パフォーマンス統計とデータベースの論理的および物理的一貫性を確認できます。
データベース エンジン チューニング アドバイザー データベース エンジン チューニング アドバイザーでは、チューニングするデータベースに対して実行した Transact-SQL ステートメントのパフォーマンス効果が分析されます。 データベース エンジン チューニング アドバイザーでは、インデックス、インデックス付きビュー、およびパーティションを追加、削除、または変更するための推奨設定が提供されます。
エラー ログ Windows アプリケーション イベント ログでは、Windows Server と Windows オペレーティング システム全体で発生しているイベントと、SQL Server、SQL Server エージェント、および全文検索で発生しているイベントの全般的な概要が示されます。 他の場所では使用できない SQL Server のイベントに関する情報が含まれています。 SQL Server に関連する問題のトラブルシューティングでエラー ログの情報を使用できます。
拡張イベントの概要 拡張イベントは軽量なパフォーマンス監視システムであり、使用されるパフォーマンス リソースはごくわずかです。 拡張イベントには、セッション データを容易かつ迅速に作成、変更、表示、分析するためのグラフィカル ユーザー インターフェイスが 3 つ用意されています (新規セッション ウィザード、[新しいセッション]、XE Profiler)。
実行関連の動的管理ビューと関数 実行関連の DMV によって、実行関連情報を確認できます。
ライブ クエリ統計 クエリ実行ステップに関するリアルタイムの統計情報を表示します。 このデータはクエリの実行中に利用できるため、これらの実行統計はクエリ パフォーマンス問題のデバッグで非常に役立ちます。
リソースの利用状況の監視 (パフォーマンス モニター) システム モニターでは、使用中のバッファー マネージャー ページ要求の数などのリソース使用量が主に追跡され、イベントを監視するための定義済みオブジェクトおよびカウンターやユーザー定義カウンターを使用して、サーバーのパフォーマンスおよび利用状況を監視できます。 システム モニター (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 (SSMS) でアクティビティ モニターを開く SQL Server Management Studio の利用状況モニターは、現在のアクティビティのカスタム ビューの場合に便利であり、次の情報をグラフィカルに表示します。

- SQL Server のインスタンスで実行中のプロセス
- ブロックされているプロセス
- ロック
- ユーザーの利用状況
パフォーマンス ダッシュボード SQL Server Management Studio のパフォーマンス ダッシュボードは、SQL Server に現在のパフォーマンスのボトルネックがあるかどうかを迅速に特定するのに役立ちます。
クエリ チューニング アシスタントを使用したデータベースのアップグレード クエリチューニングアシスタント (QTA) 機能を利用して、推奨されるワークフローに従うことで、新しい SQL Server バージョンへのアップグレード時のパフォーマンスの安定性を維持できます。これについては、「クエリ ストアの使用シナリオ」の「新しい SQL Server にアップグレードするときにパフォーマンスの安定性を維持する」セクションに記載されています。
クエリ ストアを使用したパフォーマンスの監視 クエリ ストア機能を使用すると、クエリ プランの選択やパフォーマンスを把握できます。 これにより、クエリ プランの変更によって生じるパフォーマンスの違いがすばやくわかるようになり、パフォーマンス上のトラブルシューティングを簡略化できます。 クエリのストアは、自動的にクエリ、プラン、および実行時統計の履歴をキャプチャし、確認用に保持します。 データは時間枠で区分されるため、データベースの使用パターンを表示して、サーバー上でクエリ プランが変わった時点を確認することができます。
SQL トレース (SQL Trace) 作成、FILTER、定義、トレースするTransact-SQL ストアド プロシージャは次のとおりです。

sp_trace_create
sp_trace_generateevent
sp_trace_setevent
sp_trace_setfilter
sp_trace_setstatus
SQL Server 分散再生の概要 Microsoft SQL Server 分散再生 では、複数のコンピューターを使用してトレース データを再生し、ミッションクリティカルなワークロードをシミュレートできます。
sp_trace_setfilter SQL Server Profiler では、バッチまたはトランザクションの開始などのエンジン プロセス イベントが追跡され、サーバーおよびデータベースの利用状況 (デッドロック、致命的なエラー、ログインの利用状況など) を監視できます。 SQL Server Profiler のデータを SQL Server テーブルまたはファイルにキャプチャして、後で分析できます。また、SQL Server でキャプチャしたイベントをステップごとに再生して、何が起こったかを正確に確認することもできます。
システム ストアド プロシージャ 次の SQL Server システム ストアド プロシージャでは、多くの監視タスクの強力な代替方法が提供されています。

sp_who:
このシステム ストアド プロシージャは、現在実行中のステートメントとそのステートメントがブロックされているかどうかなど、現在の SQL Server ユーザーおよびプロセスに関するスナップショット情報を報告します。

sp_lock:
このシステム ストアド プロシージャは、オブジェクト ID、インデックス ID、ロックの種類、ロックを適用する種類またはリソースなど、ロックに関するスナップショット情報を報告します。

sp_spaceused:
このシステム ストアド プロシージャは、テーブルまたはデータベース全体が使用している現在のディスク容量の推定値を表示します。

sp_monitor:
CPU 使用率、I/O 使用率、 sp_monitor が最後に実行されてからのアイドル時間などの統計情報を表示します。
トレース フラグ トレース フラグでは、サーバー内の特定の利用状況に関する情報が示されます。このトレース フラグを使用して、問題やデッドロック チェーンなどのパフォーマンスの問題を診断します。

監視ツールの選択

どの監視ツールを使用するかは、監視対象のイベントまたは利用状況によって決まります。

イベントまたは利用状況 拡張イベント SQL Server プロファイラー 分散再生 システム モニター 利用状況モニター Transact-SQL エラー ログ パフォーマンス ダッシュボード
傾向分析 はい はい はい
キャプチャしたイベントの再生 可 (1 台のコンピューターから) 可 (複数のコンピューターから)
アドホック監視 はい 1 はい はい はい はい はい
警告の生成 はい
グラフィカル インターフェイス はい はい はい はい はい はい
カスタム アプリケーション内での使用 はい はい 2 はい

1 SQL Server Profiler システム ストアド プロシージャ を使用した SSMS XEvent Profiler2 の使用。

Windows 監視ツール

Windows オペレーティング システムには、これらの監視ツールも用意されています。

ツール 説明
タスク マネージャ システム上で実行中のプロセスやアプリケーションの概要を示します。
パフォーマンス モニター システム リソースを監視します。
Windows アプリケーション イベント ログ SQL Server やその他のアプリケーションによって生成されたアプリケーション イベントを表示します。
Windows ファイアウォール Windows ファイアウォールには、ブロックされたトラフィックと許可されたトラフィックの監視機能があります。

注意事項

プロセスには、Windows タスク マネージャーおよびリソース モニター ツールの sqlservr.exe] 機能を使用しないでください。 この機能は SQL Server ではサポートされていないため、ランタイム例外やプロセス ダンプが発生する可能性があります。

Windows オペレーティング システムまたは Windows Server ツールの詳細については、Windows のマニュアルを参照してください。