sys.dm_os_wait_stats

更新 : 2006 年 4 月 14 日

実行されたスレッドにより検出された待機に関する情報を返します。この集計ビューを使用して、SQL Server、および特定のクエリとバッチに関するパフォーマンスの問題を診断できます。

列名 データ型 説明

wait_type

nvarchar(60)

待機の種類の名前。

waiting_tasks_count

bigint

この待機の種類における待機の数。このカウンタは、待機が開始するたび増加します。

wait_time_ms

bigint

この待機の種類における総待機時間 (ミリ秒単位)。この時間には、signal_wait_time_ms の時間が含まれます。

max_wait_time_ms

bigint

この待機の種類における最大待機時間。

signal_wait_time_ms

bigint

待機スレッドがシグナルを受け取ってから実行を開始するまでの時間。

権限

サーバーに対する VIEW SERVER STATE 権限が必要です。

解説

待機の種類

  • リソース待機
    リソース待機は、ワーカーがリソースへのアクセスを要求したときに、そのリソースが他のワーカーによって使用されているか、まだ準備ができておらず、使用できない場合に発生します。リソース待機の例としては、ロック、ラッチ、ネットワークおよびディクス I/O 待機があります。ロック待機およびラッチ待機は、同期オブジェクトで発生する待機です。
  • キュー待機
    キュー待機は、ワーカーが作業割り当ての待機でアイドル状態となっている場合に発生します。キュー待機は、デッドロック監視のようなシステム バックグラウンド タスクや、削除されたレコードのクリーンアップ タスクで最も多く発生します。これらのタスクは、作業要求が作業キューに配置されるまで待機します。キュー待機は、新しいパケットがキューに配置されていない場合でも、定期的にアクティブになることがあります。
  • 外部待機
    外部待機は、SQL Server ワーカーが、拡張ストアド プロシージャの呼び出しやリンク サーバー クエリなどの外部イベントの終了を待機しているときに発生します。ブロッキングの問題を診断するときには、外部待機が発生していてもワーカーがアイドル状態になっているとは限らないことに注意してください。ワーカーはアクティブ状態で外部コードを実行している可能性があるためです。

sys.dm_os_wait_stats では、既に終わった待機時間が示されます。この動的管理ビューでは、現在待機中の待機時間は示されません。

次のいずれかに該当する場合、SQL Server ワーカー スレッドは待機中とは見なされません。

  • リソースが使用可能になった。
  • キューが空でない。
  • 外部プロセスが終了した。

スレッドは、待機中でなくなってもすぐに実行を開始する必要はありません。このようなスレッドは、最初に実行可能なワーカーのキューに配置された後、スケジューラに従って実行するために、クォンタムの間待機する必要があります。

SQL Server 2005 では、待機時間のカウンタは bigint 値であり、したがって以前のバージョンの SQL Server にあった同等のカウンタほどカウンタのロールオーバーは発生しません。

クエリ実行中に発生している待機時間の種類によって、クエリにボトルネックや機能停止ポイントがあるかどうかを判断できます。また、サーバー全体の待機時間や待機カウントが高い値を示している場合は、サーバー インスタンス内の対話型クエリの対話にボトルネックまたはホット スポットが存在していることを表しています。たとえば、ロック待機の場合はクエリによるデータ競合、ページ I/O ラッチ待機の場合は遅い I/O 反応時間、ページ ラッチ更新待機の場合は不正なファイル レイアウトが存在していると判断できます。

この動的管理ビューの内容は、次のコマンドを実行してリセットできます。

DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);
GO

このコマンドではすべてのカウンタが 0 にリセットされます。

ms179984.note(ja-jp,SQL.90).gifメモ :
これらの統計は、SQL Server を再起動すると消去されます。すべてのデータは、統計が最後にリセットされてから、またはサーバーが最後に起動されてからの累積データです。

次の表は、タスクで発生する待機の種類の一覧です。

待機の種類 説明

ASYNC_DISKPOOL_LOCK

ファイルの作成や初期化などのタスクを実行している並列スレッドを同期しようとすると発生します。

ASYNC_IO_COMPLETION

タスクが I/O の終了を待機しているときに発生します。

ASYNC_NETWORK_IO

ネットワークの書き込みでタスクがブロックされているときに発生します。クライアントがサーバーからのデータを処理しているかどうかを確認してください。

BACKUP

バックアップ処理の一部としてタスクがブロックされているときに発生します。

BACKUP_CLIENTLOCK

内部使用のみ。

BACKUP_OPERATOR

タスクがテープのマウントを待機しているときに発生します。テープの状態を表示するには、sys.dm_io_backup_tapes にクエリを実行します。マウント操作が保留中以外のときに、この待機が発生した場合は、テープ ドライブにハードウェア上の問題があると考えられます。

BACKUPBUFFER

バックアップ タスクが、データまたはデータを格納するバッファを待機しているときに発生します。この待機は、タスクがテープのマウントを待機しているとき以外はほとんど発生しません。

BACKUPIO

バックアップ タスクが、データまたはデータを格納するバッファを待機しているときに発生します。この待機は、タスクがテープのマウントを待機しているとき以外はほとんど発生しません。

BACKUPTHREAD

タスクがバックアップ タスクの終了を待機しているときに発生します。待機時間の長さは、数分から数時間に及ぶ場合があります。待機中のタスクが I/O 処理中である場合は、この待機が発生しても問題はありません。

BAD_PAGE_PROCESS

問題があると考えられるバックグラウンドのページ ロガーが、5 秒間隔より頻繁な実行を回避しようとする場合に発生します。問題があると考えられるページが多くある場合、ロガーは頻繁に実行されます。

BROKER_CONNECTION_RECEIVE_TASK

接続エンドポイントでメッセージを受信するためアクセスを待機しているときに発生します。エンドポイントへの受信アクセスはシリアル化されます。

BROKER_ENDPOINT_STATE_MUTEX

Service Broker 接続エンドポイントの状態へのアクセスが競合しているときに発生します。変更の状態へのアクセスはシリアル化されます。

BROKER_EVENTHANDLER

タスクが Service Broker のプライマリ イベント ハンドラを待機しているときに発生します。この待機は、非常に短い時間の待機です。

BROKER_INIT

各アクティブ データベースで Service Broker を初期化するときに発生します。この待機は、発生頻度の低い待機です。

BROKER_MASTERSTART

タスクが Service Broker のプライマリ イベント ハンドラの起動を待機しているときに発生します。この待機は、非常に短い時間の待機です。

BROKER_RECEIVE_WAITFOR

RECEIVE WAITFOR が待機しているときに発生します。これは、メッセージの受信準備ができていない場合によく起こります。

BROKER_REGISTERALLENDPOINTS

Service Broker の接続エンドポイントの初期化中に発生します。この待機は、非常に短い時間の待機です。

BROKER_SHUTDOWN

Service Broker のシャットダウンが予定されている場合に発生します。この待機は、非常に短い時間の待機です。

BROKER_TRANSMITTER

Service Broker 送信機能が作業を待機しているときに発生します。

BUILTIN_HASHKEY_MUTEX

この待機はインスタンスの起動後、内部データ構造の初期化中に発生することがあります。データ構造が初期化されてから再発生することはありません。

CHECKPOINT_QUEUE

チェックポイント タスクが、次のチェックポイント要求を待機しているときに発生します。

CHKPT

サーバー起動時に発生し、チェックポイント スレッドに開始できることを伝えます。

CLR_AUTO_EVENT

タスクが共通言語ランタイム (CLR) を実行中で、特定の自動イベントが開始されるのを待機しているときに発生します。

CLR_CRST

タスクが CLR を実行中で、重大なセクションが別のタスクによって現在使用されている場合、そのセクションを待機しているときに発生します。

CLR_JOIN

タスクが CLR を実行中で、別のタスクの終了を待機しているときに発生します。また、この待機状態は、タスク間の結合があるときに発生します。

CLR_MANUAL_EVENT

タスクが CLR を実行中で、特定の手動イベントが開始されるのを待機しているときに発生します。

CLR_MONITOR

タスクが CLR を実行中で、ロックの取得をモニタで待機しているときに発生します。

CLR_RWLOCK_READER

タスクが CLR を実行中で、リーダー ロックを待機しているときに発生します。

CLR_RWLOCK_WRITER

タスクが CLR を実行中で、ライタ ロックを待機しているときに発生します。

CLR_SEMAPHORE

タスクが CLR を実行中で、セマフォを待機しているときに発生します。

CLR_TASK_START

CLR タスクが完全に開始されるのを待機しているときに発生します。

CMEMTHREAD

タスクがスレッド セーフ メモリ オブジェクトで待機しているときに発生します。複数のタスクが同じメモリ オブジェクトからメモリを割り当てようとして競合が発生している場合、待機時間は長くなる可能性があります。

CURSOR

内部使用のみ。

CURSOR_ASYNC

内部使用のみ。

CXPACKET

クエリ プロセッサ交換反復子を同期しようとするときに発生します。この待機で競合が発生すると問題になる場合は、並列処理の次数を下げることを検討してください。

DBMIRROR_DBM_EVENT

内部使用のみ。

DBMIRROR_DBM_MUTEX

内部使用のみ。

DBMIRROR_EVENTS_QUEUE

データベース ミラーリングがイベントの処理を待機しているときに発生します。

DBMIRROR_SEND

タスクが、ネットワーク層の通信バックログが消去されメッセージ送信できるようになるのを待機しているときに発生します。通信層が過負荷になり、データベース ミラーリング データのスループットに影響が生じ始めていることを表します。

DBMIRROR_WORKER_QUEUE

データベース ミラーリング ワーカー タスクが、次の作業の実行を待機していることを表します。

DBMIRRORING_CMD

タスクが、ログ レコードのディスクへのフラッシュを待機しているときに発生します。この待機状態は、長時間続くことが予想されます。

DBTABLE

内部使用のみ。

DEADLOCK_ENUM_MUTEX

SQL Server で同時に複数のデッドロック検索が実行されていないかどうかを、デッドロック モニタと sys.dm_os_waiting_tasks が確認しようとするときに発生します。

DEADLOCK_TASK_SEARCH

このリソースでの待機時間が長い場合は、サーバーが sys.dm_os_waiting_tasks 上で複数のクエリを実行したことにより、デッドロック モニタでデッドロック検索を実行できなくなっていることを表します。この待機の種類は、デッドロック モニタにのみ使用されます。sys.dm_os_waiting_tasks の上部のクエリは、DEADLOCK_ENUM_MUTEX を使用します。

DEBUG

Transact-SQL と CLR が内部同期のためデバッグしているときに発生します。

DISABLE_VERSIONING

一番最初のアクティブなトランザクションのタイムスタンプが、状態が変化し始めたときのタイムスタンプより後かどうかを確認するために、SQL Server がバージョン トランザクション マネージャをポーリングしたときに発生します。最初のトランザクションのタイムスタンプが状態変化のタイムスタンプより後の場合、ALTER DATABASE ステートメントの実行前に開始されたスナップショット トランザクションはすべて終了しています。この待機状態は、SQL Server が ALTER DATABASE ステートメントを使用してバージョン管理を無効にするときに使用されます。

DISKIO_SUSPEND

外部バックアップがアクティブで、タスクがファイルへのアクセスを待機しているときに発生します。これは、ユーザー プロセスの待機が発生するたびに報告されます。1 つのユーザー プロセスの待機が 5 回を超えた場合は、外部バックアップの完了に時間がかかりすぎている可能性があります。

DLL_LOADING_MUTEX

XML パーサー DLL が読み込まれるのを待機しているときに 1 回発生します。

DROPTEMP

一時オブジェクトの削除を試行して失敗した場合に、次の削除を試行するまでの間に発生します。この待機時間は、削除の試行が失敗するたびに指数関数的に増えます。

DTC

タスクが、状態遷移の管理に使用されるイベントで待機しているときに発生します。この待機状態によって、Microsoft 分散トランザクション コーディネータ (MS DTC) サービスが使用できなくなったという通知を SQL Server で受信した後で、MS DTC トランザクションの復旧が発生するタイミングが制御されます。

また、この待機状態によって、SQL Server が MS DTC トランザクションのコミットを開始するときに待機中になっているタスクを把握することができます。さらに、SQL Server が MS DTC のコミットの終了を待機しているときに待機中になっているタスクも把握することができます。

DTC_ABORT_REQUEST

MS DTC ワーカー セッションが、MS DTC トランザクションの所有権取得を待機しているときに発生します。MS DTC がトランザクションの所有権を取得した後、セッションはそのトランザクションをロールバックできます。一般に、セッションが待機するのは、そのトランザクションが別のセッションで使用されている場合です。

DTC_RESOLVE

複数のデータベースにまたがるトランザクションで、復旧タスクが、トランザクションの結果をクエリするため master データベースを待機しているときに発生します。

DTC_STATE

内部の MS DTC グローバル状態オブジェクトに対する変更を保護するイベントで、タスクが待機しているときに発生します。この待機状態は非常に短い時間保持されます。

DTC_TMDOWN_REQUEST

MS DTC ワーカー セッションで、MS DTC サービスが使用できないという通知を SQL Server が受信したときに発生します。ワーカーはまず MS DTC 復旧プロセスの開始を待機し、次に、ワーカーが操作している分散トランザクションの結果取得を待機します。この待機は、MS DTC サービスとの接続が再度確立されるまで継続される場合があります。

DTC_WAITFOR_OUTCOME

MS DTC がアクティブになり、準備されたトランザクションの解決が可能になるのを、復旧タスクが待機しているときに発生します。

DUMP_LOG_COORDINATOR

メイン タスクが、サブタスクによるデータ生成を待機しているときに発生します。通常、この待機状態は発生しません。待機が長時間になる場合は、予期しないブロックが発生している可能性があり、サブタスクを調査する必要があります。

EC

内部使用のみ。

EE_PMOLOCK

ステートメントの実行時、特定の種類のメモリ割り当てを同期するときに発生します。

EE_SPECPROC_MAP_INIT

内部プロシージャ ハッシュ テーブルの作成における同期中に発生します。この待機は、SQL Server 2005 インスタンスの開始後、ハッシュ テーブルに最初にアクセスするときにのみ発生します。

ENABLE_VERSIONING

データベースがスナップショット分離が許可されている状態に移行できることを宣言するために、SQL Server が、このデータベースにおけるすべての更新トランザクションの終了を待機しているときに発生します。この待機状態は、SQL Server が ALTER DATABASE ステートメントを使用してスナップショット分離を有効にするときに使用されます。

ERROR_REPORTING_MANAGER

複数のエラー ログの初期化における同期中に発生します。

EXCHANGE

並列クエリの実行時、クエリ プロセッサ交換反復子での同期中に発生します。

EXECSYNC

並列クエリの実行時、交換反復子に関係のない領域での、クエリ プロセッサによる同期中に発生します。このような領域の例としては、ビットマップ、ラージ バイナリ オブジェクト (LOB)、スプール反復子などがあります。LOB では、この待機状態が頻繁に使用されることがあります。

FAILPOINT

内部使用のみ。

FCB_REPLICA_READ

スナップショット (または DBCC によって作成された一時スナップショット) のスパース ファイルの読み取りを同期するときに発生します。

FCB_REPLICA_WRITE

スナップショット (または DBCC によって作成された一時スナップショット) のスパース ファイルに対するページのプッシュまたはプルを同期するときに発生します。

FT_RESTART_CRAWL

一時的なエラーから復旧するために、正常と認識されている最後の時点からフルテキスト クロールを再開する必要があるときに発生します。この待機が発生した場合、設定を現在処理中のワーカー タスクは、完了するか現在のステップを終了することを許可されます。

FT_RESUME_CRAWL

内部使用のみ。

FULLTEXT GATHERER

フルテキスト操作の同期中に発生します。

HTTP_ENDPOINT_COLLCREATE

内部使用のみ。

HTTP_ENUMERATION

起動時に発生し、HTTP を開始するため HTTP エンドポイントを列挙します。

HTTP_START

接続が HTTP の初期化完了を待機しているときに発生します。

IMP_IMPORT_MUTEX

内部使用のみ。

IMPPROV_IOWAIT

SQL Server が、一括読み込み I/O の終了を待機しているときに発生します。

INDEX_USAGE_STATS_MUTEX

内部使用のみ。

IO_AUDIT_MUTEX

トレース イベント バッファの同期中に発生します。

IO_COMPLETION

I/O 操作の完了を待機しているときに発生します。この待機の種類は通常、データ ページ以外の I/O を表します。データ ページ I/O の完了の待機は、PAGEIOLATCH_* の待機として表示されます。

KSOURCE_WAKEUP

サービス コントロール タスクによって、サービス コントロール マネージャからの要求を待機しているときに使用されます。待機は長時間になることが予想されますが、問題はありません。

KTM_ENLISTMENT

内部使用のみ。

KTM_RECOVERY_MANAGER

内部使用のみ。

KTM_RECOVERY_RESOLUTION

内部使用のみ。

LATCH_DT

DT (破棄) ラッチを待機しているときに発生します。これには、バッファ ラッチまたはトランザクション マーク ラッチは含まれません。LATCH_* 待機の一覧は、sys.dm_os_latch_stats で確認できます。sys.dm_os_latch_stats では、LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX、および LATCH_DT の待機はグループ化されます。

LATCH_EX

EX (排他) ラッチを待機しているときに発生します。これには、バッファ ラッチまたはトランザクション マーク ラッチは含まれません。LATCH_* 待機の一覧は、sys.dm_os_latch_stats で確認できます。sys.dm_os_latch_stats では、LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX、および LATCH_DT の待機はグループ化されます。

LATCH_KP

KP (保持) ラッチを待機しているときに発生します。これには、バッファ ラッチまたはトランザクション マーク ラッチは含まれません。LATCH_* 待機の一覧は、sys.dm_os_latch_stats で確認できます。sys.dm_os_latch_stats では、LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX、および LATCH_DT の待機はグループ化されます。

LATCH_NL

内部使用のみ。

LATCH_SH

SH (共有) ラッチを待機しているときに発生します。これには、バッファ ラッチまたはトランザクション マーク ラッチは含まれません。LATCH_* 待機の一覧は、sys.dm_os_latch_stats で確認できます。sys.dm_os_latch_stats では、LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX、および LATCH_DT の待機はグループ化されます。

LATCH_UP

UP (更新) ラッチを待機しているときに発生します。これには、バッファ ラッチまたはトランザクション マーク ラッチは含まれません。LATCH_* 待機の一覧は、sys.dm_os_latch_stats で確認できます。sys.dm_os_latch_stats では、LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX、および LATCH_DT の待機はグループ化されます。

LAZYWRITER_SLEEP

レイジーライター タスクが一時中断されるときに発生します。待機中のバックグラウンド タスクで費やされた時間を測定することができます。ユーザーの機能停止を検索しているときには、この待機状態は考慮しないでください。

LCK_M_BU

タスクが一括更新 (BU) ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_IS

タスクがインテント共有 (IS) ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_IU

タスクがインテント更新 (IU) ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_IX

タスクがインテント排他 (IX) ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RIn_NL

タスクが、現在のキー値に対する NULL ロックの取得、および現在のキーから以前のキーまでを対象とした挿入範囲ロックの取得を待機しているときに発生します。キーの NULL ロックは、すぐに解放されるロックです。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RIn_S

タスクが、現在のキー値に対する共有ロックの取得、および現在のキーから以前のキーまでを対象とした挿入範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RIn_U

タスクが、現在のキー値に対する更新ロックの取得、および現在のキーから以前のキーまでを対象とした挿入範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RIn_X

タスクが、現在のキー値に対する排他ロックの取得、および現在のキーから以前のキーまでを対象とした挿入範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RS_S

タスクが、現在のキー値に対する共有ロックの取得、および現在のキーから以前のキーまでを対象とした共有範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RS_U

タスクが、現在のキー値に対する更新ロックの取得、および現在のキーから以前のキーまでを対象とした更新範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RX_S

タスクが、現在のキー値に対する共有ロックの取得、および現在のキーから以前のキーまでを対象とした排他範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RX_U

タスクが、現在のキー値に対する更新ロックの取得、および現在のキーから以前のキーまでを対象とした排他範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_RX_X

タスクが、現在のキー値に対する排他ロックの取得、および現在のキーから以前のキーまでを対象とした排他範囲ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_S

タスクが共有ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_SCH_M

タスクがスキーマ変更ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_SCH_S

タスクがスキーマ共有ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_SIU

タスクがインテント更新付き共有ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_SIX

タスクがインテント排他付き共有ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_U

タスクが更新ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_UIX

タスクがインテント排他付き更新ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LCK_M_X

タスクが排他ロックの取得を待機しているときに発生します。ロックの互換性のマトリックスについては、「sys.dm_tran_locks」を参照してください。

LOGBUFFER

タスクが、ログ レコードを格納するログ バッファの領域を待機しているときに発生します。常に高い値が示される場合は、ログ デバイスで解放される領域よりも、サーバーにより生成されるログ サイズが大きいことを表しています。

LOGMGR

データベースを閉じる間、タスクが、ログのシャットダウン前に未処理のログ I/O が終了するのを待機しているときに発生します。

LOGMGR_FLUSH

内部使用のみ。

LOGMGR_QUEUE

ログ ライタ タスクが作業要求を待機しているときに発生します。

LOGMGR_RESERVE_APPEND

新しいログ レコードを書き込むために、タスクが、ログの切り捨てによるログ領域の解放の確認を待機しているときに発生します。この待機を短縮すると、影響を受けるデータベースのログ ファイル サイズが増えることに注意してください。

LOWFAIL_MEMMGR_QUEUE

メモリが使用可能になるのを待機しているときに発生します。

MIRROR_SEND_MESSAGE

内部使用のみ。

MISCELLANEOUS

内部使用のみ。

MSQL_DQ

タスクが分散クエリ操作の終了を待機しているときに発生します。これは、複数のアクティブな結果セット (MARS) アプリケーションにデッドロックの可能性があるかどうかを検出するために使用されます。分散クエリ呼び出しが終了すると、待機は終了します。

MSQL_SYNC_PIPE

内部使用のみ。

MSQL_XACT_MGR_MUTEX

タスクが、セッション レベル トランザクション操作を実行するために、セッション トランザクション マネージャの所有権の取得を待機しているときに発生します。

MSQL_XACT_MUTEX

トランザクション使用の同期中に発生します。要求でトランザクションを使用するには、まずミューテックスを取得する必要があります。

MSQL_XP

タスクが、拡張ストアド プロシージャの終了を待機しているときに発生します。SQL Server では、この待機状態を使用して、MARS アプリケーションにデッドロックの可能性があるかどうかを検出します。拡張ストアド プロシージャの呼び出しが終了すると、待機は終了します。

MSSEARCH

フルテキスト検索の呼び出し中に発生します。フルテキスト操作が完了すると、待機は終了します。この待機はフルテキスト操作の競合ではなく、操作時間を表します。

NET_WAITFOR_PACKET

ネットワークの読み取り中に、接続がネットワーク パケットを待機しているときに発生します。

OLEDB

SQL Server が Microsoft SQL Native Client OLE DB プロバイダを呼び出すときに発生します。この種類の待機は、同期では使用されません。代わりに、OLE DB プロバイダ呼び出しの持続時間を示します。

ONDEMAND_TASK_QUEUE

バックグラウンド タスクが、優先度の高いシステム タスクの要求を待機しているときに発生します。待機時間が長い場合は処理優先度が高い要求がないことを示します。問題があるわけではありません。

PAGEIOLATCH_DT

タスクが、I/O 要求内のバッファ ラッチで待機しているときに発生します。ラッチ要求は破棄モードです。待機時間が長い場合、ディスク サブシステムに問題がある可能性があります。

PAGEIOLATCH_EX

タスクが、I/O 要求内のバッファ ラッチで待機しているときに発生します。ラッチ要求は排他モードです。待機時間が長い場合、ディスク サブシステムに問題がある可能性があります。

PAGEIOLATCH_KP

タスクが、I/O 要求内のバッファ ラッチで待機しているときに発生します。ラッチ要求は保持モードです。待機時間が長い場合、ディスク サブシステムに問題がある可能性があります。

PAGEIOLATCH_NL

内部使用のみ。

PAGEIOLATCH_SH

タスクが、I/O 要求内のバッファ ラッチで待機しているときに発生します。ラッチ要求は共有モードです。待機時間が長い場合、ディスク サブシステムに問題がある可能性があります。

PAGEIOLATCH_UP

タスクが、I/O 要求内のバッファ ラッチで待機しているときに発生します。ラッチ要求は更新モードです。待機時間が長い場合、ディスク サブシステムに問題がある可能性があります。

PAGELATCH_DT

タスクが、I/O 要求内にないバッファ ラッチで待機しているときに発生します。ラッチ要求は破棄モードです。

PAGELATCH_EX

タスクが、I/O 要求内にないバッファ ラッチで待機しているときに発生します。ラッチ要求は排他モードです。

PAGELATCH_KP

タスクが、I/O 要求内にないバッファ ラッチで待機しているときに発生します。ラッチ要求は保持モードです。

PAGELATCH_NL

内部使用のみ。

PAGELATCH_SH

タスクが、I/O 要求内にないバッファ ラッチで待機しているときに発生します。ラッチ要求は共有モードです。

PAGELATCH_UP

タスクが、I/O 要求内にないバッファ ラッチで待機しているときに発生します。ラッチ要求は更新モードです。

PARALLEL_BACKUP_QUEUE

RESTORE HEADERONLY、RESTORE FILELISTONLY、または RESTORE LABELONLY によって生成された出力をシリアル化しているときに発生します。

PRINT_ROLLBACK_PROGRESS

ALTER DATABASE 終了句を使用して遷移されたデータベースで、ユーザー プロセスが終了するのを待機する場合に使用されます。詳細については、「ALTER DATABASE (Transact-SQL)」を参照してください。

QNMANAGER_ACQUIRE

内部使用のみ。

QPJOB_KILL

非同期自動統計更新が実行開始されたときに、強制終了呼び出しにより操作がキャンセルされたことを示します。終了スレッドは一時中断され、強制終了コマンドの受信開始を待機します。1 秒未満であれば問題はありません。

QPJOB_WAITFOR_ABORT

非同期自動統計更新の実行中に、強制終了の呼び出しにより操作がキャンセルされたことを示します。更新は現在完了していますが、終了スレッド メッセージ調整が完了するまでは一時中断されます。これは通常の状態ですが、発生することはほとんどありません。発生しても非常に短い時間です。1 秒未満であれば問題はありません。

QRY_MEM_GRANT_INFO_MUTEX

クエリ実行メモリ管理が、静的な許可情報リストへのアクセスを制御しようとするときに発生します。この待機状態では、現在許可されており待機中のメモリ要求に関する情報が一覧表示されます。またこの状態は、単純なアクセス制御状態です。この状態では、長時間に及ぶ待機は避けてください。このミューテックスが解放されない場合、新しいメモリを使用するすべてのクエリは応答を停止します。

QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN

オフラインでのインデックス作成が並列実行される場合、並べ替えを行っている複数のワーカー スレッドが並べ替えファイルへのアクセスを同期するときに発生する場合があります。

QUERY_NOTIFICATION_MGR_MUTEX

クエリ通知マネージャ内のガベージ コレクション キューの同期中に発生します。

QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX

クエリ通知内のトランザクションの状態の同期中に発生します。

QUERY_NOTIFICATION_TABLE_MGR_MUTEX

クエリ通知マネージャ内での内部同期中に発生します。

QUERY_NOTIFICATION_UNITTEST_MUTEX

内部使用のみ。

QUERY_OPTIMIZER_PRINT_MUTEX

クエリ オプティマイザ診断の出力作成の同期中に発生します。この待機は、Microsoft 製品サポートの指示により、診断設定を有効にしている場合にのみ発生します。

QUERY_TRACEOUT

内部使用のみ。

RECOVER_CHANGEDB

ウォーム スタンバイ データベース内で、データベースの状態の同期中に発生します。

REPL_CACHE_ACCESS

レプリケーション アーティクル キャッシュでの同期中に発生します。この待機中、レプリケーション ログ リーダーは停止し、パブリッシュされたテーブルに対するデータ定義言語 (DDL) ステートメントはブロックされます。

REPL_SCHEMA_ACCESS

レプリケーション スキーマのバージョン情報の同期中に発生します。この状態は、レプリケートされたオブジェクトで DDL ステートメントが実行されるとき、および、ログ リーダーが DDL の発生に基づいてバージョン管理されたスキーマを作成または使用するときに発生します。

REPLICA_WRITES

タスクが、データベース スナップショットまたは DBCC レプリカへのページ書き込みの完了を待機しているときに発生します。

REQUEST_DISPENSER_PAUSE

タスクが、未処理の I/O がすべて完了しスナップショット バックアップ用にファイルの I/O が固定されるのを待機しているときに発生します。

REQUEST_FOR_DEADLOCK_SEARCH

デッドロック モニタが、次のデッドロック検索の開始を待機しているときに発生します。この待機は、デッドロックが検出されてから次に検出されるまでの間に発生することが予想されます。このリソースにおける合計待機時間が長くても問題はありません。

RESOURCE_QUEUE

さまざまな内部リソース キューの同期中に発生します。

RESOURCE_SEMAPHORE

他の同時実行クエリがあるため、クエリ メモリの要求がすぐに許可されない場合に発生します。待機および待機時間が高い値を示している場合は、同時実行クエリの数が多すぎるか、またはメモリ要求の数が多すぎる可能性があります。

RESOURCE_SEMAPHORE_MUTEX

クエリが、スレッドを予約するための要求を待機しているときに発生します。この待機は、クエリのコンパイルとメモリの要求許可を同期しているときにも発生します。

RESOURCE_SEMAPHORE_QUERY_COMPILE

コンパイルされる同時実行クエリの数が、スロットルの制限値に達したときに発生します。待機および待機時間が高い値を示している場合は、コンパイル、再コンパイル、またはキャッシュできないプランの数が多すぎる可能性があります。

RESOURCE_SEMAPHORE_SMALL_QUERY

他の同時実行クエリがあるため、サイズの小さいクエリからのメモリ要求がすぐに許可されない場合に発生します。待機時間は数秒以内である必要があります。要求したメモリが数秒以内に許可されないと、サーバーによって要求がメイン クエリのメモリ プールに転送されます。待機が高い値を示している場合は、待機クエリによって主要なメモリ プールがブロックされているときに、サイズの小さい同時実行クエリの数が多すぎる可能性があります。

SEC_DROP_TEMP_KEY

一時セキュリティ キーを削除しようとして失敗した後、再試行するまでの間に発生します。

SERVER_IDLE_CHECK

SQL Server インスタンスのアイドル状態を同期している間に、リソース モニタが SQL Server インスタンスをアイドルとして宣言しようとするとき、または起動しようとするときに発生します。

SHUTDOWN

シャットダウン ステートメントが、アクティブな接続の終了を待機しているときに発生します。

SLEEP_BPOOL_FLUSH

ディスク サブシステムが飽和状態にならないよう、チェックポイントで新しい I/O の実行をスロットル中に発生します。

SLEEP_DBSTARTUP

すべてのデータベースが復旧するのを待機している間、データベースの起動中に発生します。

SLEEP_DCOMSTARTUP

DCOM の初期化が完了するのを待機している間、SQL Server インスタンスの起動中に、多くても 1 回だけ発生します。

SLEEP_MSDBSTARTUP

SQL トレースが msdb データベースの起動完了を待機しているときに発生します。

SLEEP_SYSTEMTASK

tempdb の起動完了を待機している間、バックグラウンド タスクの開始中に発生します。

SLEEP_TASK

汎用イベントの発生を待機している間、タスクがスリープ状態のときに発生します。

SLEEP_TEMPDBSTARTUP

タスクが、tempdb の開始完了を待機しているときに発生します。

SNI_CRITICAL_SECTION

SQL Server ネットワーク コンポーネント内での内部同期中に発生します。

SNI_HTTP_ACCEPT

内部使用のみ。

SNI_HTTP_WAITFOR_0_DISCON

SQL Server のシャットダウン中、未完了の HTTP 接続が終了するのを待機している間に発生します。

SOAP_READ

HTTP ネットワークの読み取り完了を待機しているときに発生します。

SOAP_WRITE

HTTP ネットワークの書き込み完了を待機しているときに発生します。

SOS_CALLBACK_REMOVAL

コールバックを削除するために、コールバックの一覧で同期を実行しているときに発生します。サーバーの初期化が完了した後、通常この待機カウンタが変更されることはありません。

SOS_LOCALALLOCATORLIST

SQL Server メモリ マネージャ内での内部同期中に発生します。

SOS_OBJECT_STORE_DESTROY_MUTEX

メモリ プールからオブジェクトを破棄するときに、メモリ プール内での内部同期中に発生します。

SOS_PROCESS_AFFINITY_MUTEX

関係設定を処理するためのアクセスの同期中に発生します。

SOS_RESERVEDMEMBLOCKLIST

SQL Server メモリ マネージャ内での内部同期中に発生します。

SOS_SCHEDULER_YIELD

タスクが、他のタスクの実行にスケジューラを自主的に解放したときに発生します。この待機中、タスクはクォンタムの更新を待機しています。

SOS_STACKSTORE_INIT_MUTEX

内部ストアの初期化の同期中に発生します。

SOS_SYNC_TASK_ENQUEUE_EVENT

タスクが同期して開始したときに発生します。SQL Server のほとんどのタスクは非同期で開始し、タスクの要求が作業キューに挿入されるとすぐ制御が最初に戻ります。

SOS_VIRTUALMEMORY_LOW

メモリ割り当てが、リソース マネージャによる仮想メモリの解放を待機しているときに発生します。

SOSHOST_EVENT

CLR などのホストされるコンポーネントが、SQL Server 2005 イベント同期オブジェクト上で待機しているときに発生します。

SOSHOST_INTERNAL

CLR などのホストされるコンポーネントで使用される、メモリ マネージャのコールバックの同期中に発生します。

SOSHOST_MUTEX

CLR などのホストされるコンポーネントが、SQL Server 2005 ミューテックス同期オブジェクト上で待機しているときに発生します。

SOSHOST_RWLOCK

CLR などのホストされるコンポーネントが、SQL Server 2005 リーダー/ライタ同期オブジェクト上で待機しているときに発生します。

SOSHOST_SEMAPHORE

CLR などのホストされるコンポーネントが、SQL Server 2005 セマフォ同期オブジェクト上で待機しているときに発生します。

SOSHOST_SLEEP

汎用イベントの発生を待機している間、ホストされるタスクがスリープ状態のときに発生します。ホストされるタスクは、CLR などのホストされるコンポーネントで使用されます。

SOSHOST_TRACELOCK

ストリームをトレースするためのアクセスの同期中に発生します。

SOSHOST_WAITFORDONE

CLR などのホストされるコンポーネントが、タスクの完了を待機しているときに発生します。

SQLCLR_APPDOMAIN

CLR が、アプリケーション ドメインの起動完了を待機しているときに発生します。

SQLCLR_ASSEMBLY

アプリケーション ドメインに読み込まれたアセンブリ一覧へのアクセスを待機しているときに発生します。

SQLCLR_DEADLOCK_DETECTION

CLR がデッドロック検出の完了を待機しているときに発生します。

SQLCLR_QUANTUM_PUNISHMENT

クォンタムの実行時間を超えたことが原因で、CLR タスクがスロットルされたときに発生します。このスロットルは、こうしたリソース消費の多いタスクによる他のタスクへの影響を軽減するために行われます。

SQLSORT_NORMMUTEX

内部同期中、内部の並べ替え構造が初期化される間に発生します。

SQLSORT_SORTMUTEX

内部同期中、内部の並べ替え構造が初期化される間に発生します。

SQLTRACE_BUFFER_FLUSH

タスクが、バックグラウンド タスクによってトレース バッファが 4 秒ごとにディスクにフラッシュされるのを待機しているときに発生します。

SQLTRACE_LOCK

ファイルのトレース中、トレース バッファの同期中に発生します。

SQLTRACE_SHUTDOWN

トレースのシャットダウンが、未処理のトレース イベントが完了するのを待機しているときに発生します。

SQLTRACE_WAIT_ENTRIES

SQL トレース イベント キューが、パケットの到着を待機しているときに発生します。

SRVPROC_SHUTDOWN

シャットダウン プロセスが、正常にシャットダウンするために内部リソースの解放を待機しているときに発生します。

TEMPOBJ

一時オブジェクトの削除が同期されるときに発生します。この待機が発生するのはまれで、タスクが temp テーブルに対して削除操作を行うための排他アクセスを要求した場合にのみ発生します。

THREADPOOL

タスクがワーカーの実行を待機しているときに発生します。ワーカー数の最大設定値が低すぎるか、バッチ実行時間が長すぎるため、他のバッチ用にワーカー数が削減されている可能性があります。

TRACEWRITE

SQL トレースの行セット トレース プロバイダが、空きバッファまたは処理するイベントを含むバッファのいずれかを待機しているときに発生します。

TRAN_MARKLATCH_DT

トランザクション マーク ラッチで破棄モードのラッチを待機しているときに発生します。トランザクション マーク ラッチは、マークされたトランザクションでのコミットの同期に使用されます。

TRAN_MARKLATCH_EX

マークされたトランザクションで排他モードのラッチを待機しているときに発生します。トランザクション マーク ラッチは、マークされたトランザクションでのコミットの同期に使用されます。

TRAN_MARKLATCH_KP

マークされたトランザクションで保持モードのラッチを待機しているときに発生します。トランザクション マーク ラッチは、マークされたトランザクションでのコミットの同期に使用されます。

TRAN_MARKLATCH_NL

内部使用のみ。

TRAN_MARKLATCH_SH

マークされたトランザクションで共有モードのラッチを待機しているときに発生します。トランザクション マーク ラッチは、マークされたトランザクションでのコミットの同期に使用されます。

TRAN_MARKLATCH_UP

マークされたトランザクションで更新モードのラッチを待機しているときに発生します。トランザクション マーク ラッチは、マークされたトランザクションでのコミットの同期に使用されます。

TRANSACTION_MUTEX

複数のバッチによるトランザクションへのアクセスの同期中に発生します。

UTIL_PAGE_ALLOC

トランザクション ログのスキャンが、メモリに負荷がかかっている間に、使用できるメモリを待機しているときに発生します。

VIEW_DEFINITION_MUTEX

キャッシュされたビュー定義へのアクセスの同期中に発生します。

WAIT_FOR_RESULTS

クエリ通知が行われるのを待機しているときに発生します。

WAITFOR

WAITFOR Transact-SQL ステートメントの結果として発生します。この待機時間は、ステートメントに渡すパラメータによって決まります。この待機はユーザーによって開始されるものです。

WAITSTAT_MUTEX

sys.dm_os_wait_stats の設定に使用する統計コレクションへのアクセスの同期中に発生します。

WORKTBL_DROP

作業テーブルの削除が失敗してから、再試行されるまで一時停止しているときに発生します。

WRITELOG

ログ フラッシュの完了を待機しているときに発生します。ログ フラッシュの原因となる主な操作としては、チェックポイントとトランザクションのコミットがあります。

XACT_OWN_TRANSACTION

トランザクションの所有権取得を待機しているときに発生します。

XACT_RECLAIM_SESSION

セッションの現在の所有者がその所有権を解放するのを待機しているときに発生します。

XACTLOCKINFO

トランザクションのロック一覧へのアクセスの同期中に発生します。このロック一覧には、トランザクション自体だけでなく、ページ分割時にデッドロック検出やロック移行などの操作からもアクセスが行われます。

XACTWORKSPACE_MUTEX

トランザクションからの参加解除や、トランザクションの参加メンバ間におけるデータベース ロック数の同期中に発生します。

参照

関連項目

動的管理ビューと動的管理関数
SQL Server オペレーティング システム関連の動的管理ビュー

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

追加内容 :
  • 待機の種類 FULLTEXT GATHERER、EE_SPECPROC_MAP_INIT、ERROR_REPORTING_MANAGER を追加。
変更内容 :
  • 待機の種類 OLEDB の説明を追加。

2005 年 12 月 5 日

追加内容 :
  • SQL Server 2005 で発生するすべての待機の種類を追加。
変更内容 :
  • 複数の待機の種類で、説明を更新。