パフォーマンス監視およびチューニング ツールPerformance Monitoring and Tuning Tools

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

MicrosoftMicrosoft SQL ServerSQL Server には、SQL ServerSQL Server のイベントを監視したり、物理データベース デザインをチューニングしたりするための広範なツール セットが用意されています。SQL ServerSQL Server provides a comprehensive set of tools for monitoring events in SQL ServerSQL Server and for tuning the physical database design. どのツールを選択するかは、実行する監視またはチューニングの種類や、監視するイベントによって異なります。The choice of tool depends on the type of monitoring or tuning to be done and the particular events to be monitored.

SQL ServerSQL Server の監視およびチューニング用のツールは次のとおりです。Following are the SQL ServerSQL Server monitoring and tuning tools:

ツールTool 説明Description
組み込み関数 (Transact-SQL)Built-in Functions (Transact-SQL) 組み込み関数では、サーバーが起動してからの SQL ServerSQL Server の利用状況に関するスナップショット統計が表示されます。この統計は、あらかじめ定義された SQL ServerSQL Server カウンターに格納されます。Built-in functions display snapshot statistics about SQL ServerSQL Server activity since the server was started; these statistics are stored in predefined SQL ServerSQL Server counters. たとえば、 @@CPU_BUSY には、CPU が SQL ServerSQL Server コードを実行している時間が格納されます。 @@CONNECTIONS には、SQL ServerSQL Server の接続数または接続試行数が格納されます。 @@PACKET_ERRORS には、SQL ServerSQL Server 接続で発生するネットワーク パケット数が格納されます。For example, @@CPU_BUSY contains the amount of time the CPU has been executing SQL ServerSQL Server code; @@CONNECTIONS contains the number of SQL ServerSQL Server connections or attempted connections; and @@PACKET_ERRORS contains the number of network packets occurring on SQL ServerSQL Server connections.
DBCC (Transact-SQL)DBCC (Transact-SQL) DBCC (データベース コンソール コマンド) ステートメントによって、パフォーマンス統計とデータベースの論理的および物理的一貫性を確認できます。DBCC (Database Console Command) statements enable you to check performance statistics and the logical and physical consistency of a database.
データベース エンジン チューニング アドバイザー (DTA)Database Engine Tuning Advisor (DTA) データベース エンジン チューニング アドバイザーでは、チューニングするデータベースに対して実行した Transact-SQLTransact-SQL ステートメントのパフォーマンス効果が分析されます。Database Engine Tuning Advisor analyzes the performance effects of Transact-SQLTransact-SQL statements executed against databases you want to tune. データベース エンジン チューニング アドバイザーでは、インデックス、インデックス付きビュー、およびパーティションを追加、削除、または変更するための推奨設定が提供されます。Database Engine Tuning Advisor provides recommendations to add, remove, or modify indexes, indexed views, and partitioning.
Database Experimentation Assistant (DEA)Database Experimentation Assistant (DEA) Database Experimentation Assistant (DEA) は、SQL Server の新しい A/B テスト ソリューションです。Database Experimentation Assistant (DEA) is a new A/B testing solution for SQL Server. これは、特定のワークロードに対してターゲット バージョンの SQL Server データベース エンジンSQL Server Database Engine を評価する場合に役立ちます。It will assist in evaluating a targeted version of the SQL Server データベース エンジンSQL Server Database Engine for a given workload. 以前の SQL ServerSQL Server バージョン (SQL Server 2005 (9.x)SQL Server 2005 (9.x) 以降) から任意の新しいバージョンの SQL ServerSQL Server にアップグレードすると、DEA で比較分析メトリックを使用できるようになります。When upgrading from a previous SQL ServerSQL Server versions (Starting with SQL Server 2005 (9.x)SQL Server 2005 (9.x)) to any newer version of SQL ServerSQL Server, DEA will be able to provide comparative analysis metrics.
エラー ログError Logs Windows アプリケーション イベント ログでは、Windows Server と Windows オペレーティング システム全体で発生しているイベントと、 SQL ServerSQL ServerSQL ServerSQL Server エージェント、およびフルテキスト検索で発生しているイベントの全般的な概要が示されます。The Windows application event log provides an overall picture of events occurring on the Windows Server and Windows operating systems as a whole, as well as events in SQL ServerSQL Server, SQL ServerSQL Server Agent, and full-text search. 他のツールでは提供されない SQL ServerSQL Server のイベントに関する情報が含まれています。It contains information about events in SQL ServerSQL Server that is not available elsewhere. SQL ServerSQL Serverに関連する問題のトラブルシューティングでエラー ログの情報を使用できます。You can use the information in the error log to troubleshoot SQL ServerSQL Server-related problems.
拡張イベントExtended Events 拡張イベントは軽量なパフォーマンス監視システムであり、使用されるパフォーマンス リソースはごくわずかです。Extended Events is a light weight performance monitoring system that uses very few performance resources. 拡張イベントには、セッション データを容易かつ迅速に作成、変更、表示、分析するためのグラフィカル ユーザー インターフェイスが 3 つ用意されています (新規セッション ウィザード、[新しいセッション]、XE Profiler)。Extended Events provides three graphical user interfaces (New Session Wizard, New Session and the XE Profiler) to create, modify, display, and analyze your session data.
実行関連の動的管理ビューおよび関数 (Transact-SQL)Execution Related Dynamic Management Views and Functions (Transact-SQL) 実行関連の DMV によって、実行関連情報を確認できます。Execution related DMVs enable you to check execution related information.
ライブ クエリ統計 (LQS)Live Query Statistics (LQS) クエリ実行ステップに関するリアルタイムの統計情報を表示します。Displays real-time statistics about query execution steps. このデータはクエリの実行中に利用できるため、これらの実行統計はクエリ パフォーマンス問題のデバッグで非常に役立ちます。Because this data is available while the query is executing, these execution statistics are extremely useful for debugging query performance issues.
リソースの利用状況の監視 (システム モニター)Monitor Resource Usage (System Monitor) システム モニターでは、使用中のバッファー マネージャー ページ要求の数などのリソース使用量が主に追跡され、イベントを監視するための定義済みオブジェクトおよびカウンターやユーザー定義カウンターを使用して、サーバーのパフォーマンスおよび利用状況を監視できます。System Monitor primarily tracks resource usage, such as the number of buffer manager page requests in use, enabling you to monitor server performance and activity using predefined objects and counters or user-defined counters to monitor events. システム モニター (Microsoft Windows NT 4.0 の場合はパフォーマンス モニター) は、イベントに関するデータではなく、メモリの使用量、アクティブなトランザクションの数、ブロックされたロックの数、CPU の利用状況など、イベントの数と比率を収集します。System Monitor (Performance Monitor in Microsoft Windows NT 4.0) collects counts and rates rather than data about the events (for example, memory usage, number of active transactions, number of blocked locks, or CPU activity). 特定のカウンターにしきい値を設定して、オペレーターに通知する警告を生成できます。You can set thresholds on specific counters to generate alerts that notify operators.

システム モニターは Microsoft Windows Server および Windows オペレーティング システムで機能します。System Monitor works on Microsoft Windows Server and Windows operating systems. システム モニターでは、Windows NT 4.0 以降で実行されている SQL ServerSQL Server のインスタンスをリモートまたはローカルで監視できます。It can monitor (remotely or locally) an instance of SQL ServerSQL Server on Windows NT 4.0 or later.

SQL Server プロファイラーSQL Server Profiler とシステム モニターの重要な違いは、 SQL Server プロファイラーSQL Server Profiler ではデータベース エンジンのイベントが監視されるのに対し、システム モニターではサーバー プロセスに関連したリソース使用量が監視されることです。The key difference between SQL Server プロファイラーSQL Server Profiler and System Monitor is that SQL Server プロファイラーSQL Server Profiler monitors Database Engine events, whereas System Monitor monitors resource usage associated with server processes.
利用状況モニターを開く方法 (SQL Server Management Studio)Open Activity Monitor (SQL Server Management Studio) SQL Server Management StudioSQL Server Management Studio の利用状況モニターは、現在のアクティビティのカスタム ビューの場合に便利であり、次の情報をグラフィカルに表示します。The Activity Monitor in SQL Server Management StudioSQL Server Management Studio is useful for ad hoc views of current activity and graphically displays information about:

- SQL ServerSQL Serverのインスタンスで実行中のプロセス- Processes running on an instance of SQL ServerSQL Server
- ブロックされているプロセス- Blocked processes
- ロック- Locks
- ユーザーの利用状況- User activity
パフォーマンス ダッシュボードPerformance Dashboard SQL Server Management StudioSQL Server Management Studio 内のパフォーマンス ダッシュボードは、SQL ServerSQL Server にパフォーマンスのボトルネックが存在するかどうかを迅速に特定するのに役立ちます。The Performance Dashboard in SQL Server Management StudioSQL Server Management Studio helps to quickly identify whether there is any current performance bottleneck in SQL ServerSQL Server.
クエリ調整アシスタント (QTA)Query Tuning Assistant (QTA) クエリ調整アシスタント (QTA) 機能を利用して、推奨されるワークフローに従うことで、新しい SQL ServerSQL Server バージョンへのアップグレード時のパフォーマンスの安定性を維持できます。これについては、「クエリ ストアの使用シナリオ」の「新しい SQL Server にアップグレードするときにパフォーマンスの安定性を維持する」セクションに記載されています。The Query Tuning Assistant (QTA) feature will guide users through the recommended workflow to keep performance stability during upgrades to newer SQL ServerSQL Server versions, as documented in the section Keep performance stability during the upgrade to newer SQL Server of Query Store Usage Scenarios.
クエリ ストアQuery Store クエリ ストア機能を使用すると、クエリ プランの選択やパフォーマンスを把握できます。The Query Store feature provides you with insight on query plan choice and performance. これにより、クエリ プランの変更によって生じるパフォーマンスの違いがすばやくわかるようになり、パフォーマンス上のトラブルシューティングを簡略化できます。It simplifies performance troubleshooting by helping you quickly find performance differences caused by query plan changes. クエリのストアは、自動的にクエリ、プラン、および実行時統計の履歴をキャプチャし、確認用に保持します。Query Store automatically captures a history of queries, plans, and runtime statistics, and retains these for your review. データは時間枠で区分されるため、データベースの使用パターンを表示して、サーバー上でクエリ プランが変わった時点を確認することができます。It separates data by time windows so you can see database usage patterns and understand when query plan changes happened on the server.
SQL トレース (SQL Trace)SQL Trace Transact-SQLTransact-SQL ストアド プロシージャは次のとおりです。stored procedures that create, filter, and define tracing:

sp_trace_create (Transact-SQL)sp_trace_create (Transact-SQL)
sp_trace_generateevent (Transact-SQL)sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)sp_trace_setstatus (Transact-SQL)
SQL Server Distributed ReplaySQL Server Distributed Replay MicrosoftMicrosoft SQL ServerSQL Server Distributed Replay では、複数のコンピューターを使用してトレース データを再生し、ミッションクリティカルなワークロードをシミュレートできます。SQL ServerSQL Server Distributed Replay can use multiple computers to replay trace data, simulating a mission-critical workload.
sp_trace_setfilter (Transact-SQL)sp_trace_setfilter (Transact-SQL) SQL Server プロファイラーSQL Server Profiler では、バッチまたはトランザクションの開始などのエンジン プロセス イベントが追跡され、サーバーおよびデータベースの利用状況 (デッドロック、致命的なエラー、ログインの利用状況など) を監視できます。tracks engine process events, such as the start of a batch or a transaction, enabling you to monitor server and database activity (for example, deadlocks, fatal errors, or login activity). SQL Server プロファイラーSQL Server Profiler のデータを SQL ServerSQL Server テーブルまたはファイルにキャプチャして、後で分析できます。また、 SQL ServerSQL Server でキャプチャしたイベントをステップごとに再生して、何が起こったかを正確に確認することもできます。You can capture SQL Server プロファイラーSQL Server Profiler data to a SQL ServerSQL Server table or a file for later analysis, and you can also replay the events captured on SQL ServerSQL Server step by step, to see exactly what happened.
システム ストアド プロシージャ (Transact-SQL)System Stored Procedures (Transact-SQL) 次の SQL ServerSQL Server システム ストアド プロシージャでは、多くの監視タスクの強力な代替方法が提供されています。The following SQL ServerSQL Server system stored procedures provide a powerful alternative for many monitoring tasks:

sp_who (Transact-SQL):sp_who (Transact-SQL):
このシステム ストアド プロシージャは、現在実行中のステートメントとそのステートメントがブロックされているかどうかなど、現在の SQL ServerSQL Server ユーザーおよびプロセスに関するスナップショット情報を報告します。Reports snapshot information about current SQL ServerSQL Server users and processes, including the currently executing statement and whether the statement is blocked.

sp_lock (Transact-SQL):sp_lock (Transact-SQL):
このシステム ストアド プロシージャは、オブジェクト ID、インデックス ID、ロックの種類、ロックを適用する種類またはリソースなど、ロックに関するスナップショット情報を報告します。Reports snapshot information about locks, including the object ID, index ID, type of lock, and type or resource to which the lock applies.

sp_spaceused (Transact-SQL):sp_spaceused (Transact-SQL):
このシステム ストアド プロシージャは、テーブルまたはデータベース全体が使用している現在のディスク容量の推定値を表示します。Displays an estimate of the current amount of disk space used by a table (or a whole database).

sp_monitor (Transact-SQL):sp_monitor (Transact-SQL):
CPU 使用量、I/O 使用量、 sp_monitor を最後に実行してからのアイドル時間などの統計データを表示します。Displays statistics, including CPU usage, I/O usage, and the amount of time idle since sp_monitor was last executed.
トレース フラグ (Transact-SQL)Trace Flags (Transact-SQL) トレース フラグでは、サーバー内の特定の利用状況に関する情報が示されます。このトレース フラグを使用して、問題やデッドロック チェーンなどのパフォーマンスの問題を診断します。Trace flags display information about a specific activity within the server and are used to diagnose problems or performance issues (for example, deadlock chains).

監視ツールの選択Choosing a Monitoring Tool

どの監視ツールを使用するかは、監視対象のイベントまたは利用状況によって決まります。The choice of a monitoring tool depends on the event or activity to be monitored.

イベントまたは利用状況Event or activity 拡張イベントExtended Events SQL Server プロファイラーSQL Server Profiler Distributed ReplayDistributed Replay システム モニターSystem Monitor 利用状況モニターActivity Monitor Transact-SQLTransact-SQL エラー ログError logs パフォーマンス ダッシュボードPerformance Dashboard
傾向分析Trend analysis はいYes はいYes はいYes
キャプチャしたイベントの再生Replaying captured events 可 (1 台のコンピューターから)Yes (From a single computer) 可 (複数のコンピューターから)Yes (From multiple computers)
アドホック監視Ad hoc monitoring 1Yes1 はいYes はいYes はいYes はいYes はいYes
警告の生成Generating alerts はいYes
グラフィカル インターフェイスGraphical interface はいYes はいYes はいYes はいYes はいYes はいYes
カスタム アプリケーション内での使用Using within custom application はいYes はい2Yes2 はいYes

1SQL Server Management Studio XEvent Profiler の使用 1 Using SQL Server Management Studio XEvent Profiler
2SQL Server プロファイラーSQL Server Profiler システム ストアド プロシージャの使用。2 Using SQL Server プロファイラーSQL Server Profiler system stored procedures.

Windows 監視ツールWindows Monitoring Tools

Windows オペレーティング システムおよび Windows Server 2003 では、次の監視ツールが提供されています。Windows operating systems and Windows Server 2003 also provide these monitoring tools.

ツールTool 説明Description
タスク マネージャーTask Manager システム上で実行中のプロセスやアプリケーションの概要を示します。Shows a synopsis of the processes and applications running on the system.
ネットワーク モニター エージェントNetwork Monitor Agent ネットワーク トラフィックを監視します。Monitors network traffic.

Windows オペレーティング システムまたは Windows Server ツールの詳細については、Windows のマニュアルを参照してください。For more information about Windows operating systems or Windows Server tools, see the Windows documentation.