system_health セッションの使用Use the system_health Session

system_health セッションは、既定で SQL ServerSQL Serverに含まれている拡張イベント セッションです。The system_health session is an Extended Events session that is included by default with SQL ServerSQL Server. このセッションは、 SQL Server データベース エンジンSQL Server Database Engine の起動時に自動的に開始されます。実行中にパフォーマンスに大きな影響が及ぶことはありません。This session starts automatically when the SQL Server データベース エンジンSQL Server Database Engine starts, and runs without any noticeable performance effects. データベース エンジンDatabase Engineのパフォーマンスの問題をトラブルシューティングするのに役立つシステム データを収集します。The session collects system data that you can use to help troubleshoot performance issues in the データベース エンジンDatabase Engine. そのため、このセッションを停止または削除しないことをお勧めします。Therefore, we recommend that you do not stop or delete the session.

このセッションでは、次の情報を収集します。The session collects information that includes the following:

  • 重大度が 20 以上のエラーが発生したすべてのセッションの sql_text と session_id。The sql_text and session_id for any sessions that encounter an error that has a severity >=20.

  • メモリ関連のエラーが発生したすべてのセッションの sql_text とsession_id。The sql_text and session_id for any sessions that encounter a memory-related error. エラーには、17803、701、802、8645、8651、8657、8902 などがあります。The errors include 17803, 701, 802, 8645, 8651, 8657 and 8902.

  • 応答していないスケジューラの問題の記録A record of any non-yielding scheduler problems. (これらはエラー 17883 として SQL ServerSQL Server のエラー ログに書き込まれます)。(These appear in the SQL ServerSQL Server error log as error 17883.)

  • 検出されたすべてのデッドロック。Any deadlocks that are detected.

  • ラッチ (またはその他の注目する必要があるリソース) での待機時間が 15 秒を超えるすべてのセッションの callstack、sql_text、および session_id。The callstack, sql_text, and session_id for any sessions that have waited on latches (or other interesting resources) for > 15 seconds.

  • ロックでの待機時間が 30 秒を超えるすべてのセッションの callstack、sql_text、および session_id。The callstack, sql_text, and session_id for any sessions that have waited on locks for > 30 seconds.

  • プリエンプティブ待機のために長時間待機しているすべてのセッションの callstack、sql_text、および session_id。The callstack, sql_text, and session_id for any sessions that have waited for a long time for preemptive waits. 待機時間は、待機の種類によって異なります。The duration varies by wait type. プリエンプティブ待機とは、 SQL ServerSQL Server が外部の API 呼び出しを待機している状態です。A preemptive wait is where SQL ServerSQL Server is waiting for external API calls.

  • CLR の割り当てと仮想の割り当ての失敗に対する呼び出し履歴と session_id。The callstack and session_id for CLR allocation and virtual allocation failures.

  • メモリ ブローカー、スケジューラ モニター、メモリ ノード OOM、セキュリティ、接続性に関する ring_buffer イベント。The ring_buffer events for the memory broker, scheduler monitor, memory node OOM, security, and connectivity.

  • sp_server_diagnostics からのシステム コンポーネントの結果。System component results from sp_server_diagnostics.

  • scheduler_monitor_system_health_ring_buffer_recorded によって収集されたインスタンスの正常性。Instance health collected by scheduler_monitor_system_health_ring_buffer_recorded.

  • CLR 割り当ての失敗。CLR Allocation failures.

  • connectivity_ring_buffer_recorded を使用する接続のエラー。Connectivity errors using connectivity_ring_buffer_recorded.

  • security_error_ring_buffer_recorded を使用するセキュリティのエラー。Security errors using security_error_ring_buffer_recorded.

セッション データの表示Viewing the Session Data

このセッションでは、リング バッファー ターゲットを使用して、データを格納します。The session uses the ring buffer target to store the data. セッション データを表示するには、次のクエリを使用します。To view the session data, use the following query:

SELECT CAST(xet.target_data as xml) FROM sys.dm_xe_session_targets xet  
JOIN sys.dm_xe_sessions xe  
ON (xe.address = xet.event_session_address)  
WHERE xe.name = 'system_health'  

イベント ファイルからセッション データを表示するには、Management Studio の拡張イベント ユーザー インターフェイスを使用します。To view the session data from the event file, use the Extended Events user interface available in Management Studio. 参照してくださいイベント セッション データの表示詳細についてはします。See View Event Session Data for more information.

system_health セッションの復元Restoring the system_health Session

system_health セッションを削除した場合、クエリ エディターで u_tables.sql ファイルを実行することでそのセッションを復元できます。If you delete the system_health session, you can restore it by executing the u_tables.sql file in Query Editor. このファイルは次のフォルダーにあります (C: は SQL ServerSQL Server プログラム ファイルのインストール先ドライブを表しています)。This file is located in the following folder, where C: represents the drive where you installed the SQL ServerSQL Server program files:

C:\Program Files\Microsoft SQL Server\MSSQL12.<instanceid>\MSSQL\InstallC:\Program Files\Microsoft SQL Server\MSSQL12.<instanceid>\MSSQL\Install

セッションを復元したら、ALTER EVENT SESSION ステートメントを使用するか、オブジェクト エクスプローラーで [拡張イベント] ノードを使用して、セッションを開始する必要があります。Be aware that after you restore the session, you must start the session by using the ALTER EVENT SESSION statement or by using the Extended Events node in Object Explorer. ただし、そのようにして開始しない場合でも、次に SQL ServerSQL Server サービスを再起動したときにセッションは自動的に開始されます。Otherwise, the session starts automatically the next time that you restart the SQL ServerSQL Server service.

参照See Also

拡張イベントのツールExtended Events Tools