dm_os_tasks (Transact-sql)sys.dm_os_tasks (Transact-SQL)

適用対象: はいSQL Server はいAzure SQL Database はいAzure Synapse Analytics (SQL DW) はいParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) YesParallel Data Warehouse

のインスタンスでアクティブになっているタスクごとに1行の値を返し SQL ServerSQL Server ます。Returns one row for each task that is active in the instance of SQL ServerSQL Server. タスクは、SQL Server での実行の基本単位です。A task is the basic unit of execution in SQL Server. タスクの例としては、クエリ、ログイン、ログアウト、およびゴーストクリーンアップアクティビティ、チェックポイントアクティビティ、ログライター、並列再実行アクティビティなどのシステムタスクがあります。Examples of tasks include a query, a login, a logout, and system tasks like ghost cleanup activity, checkpoint activity, log writer, parallel redo activity. タスクの詳細については、「スレッドおよびタスクアーキテクチャガイド」を参照してください。For more information about tasks, see the Thread and Task Architecture Guide.


またはからこれを呼び出すに Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)Parallel Data WarehouseParallel Data Warehousedm_pdw_nodes_os_tasksという名前を使用します。To call this from Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_os_tasks.

列名Column name データ型Data type 説明Description
task_addresstask_address varbinary (8)varbinary(8) オブジェクトのメモリアドレス。Memory address of the object.
task_statetask_state nvarchar(60)nvarchar(60) タスクの状態です。State of the task. DLL は、次のいずれかの場所に置くことができます。This can be one of the following:

PENDING: ワーカー スレッドを待機しています。PENDING: Waiting for a worker thread.

RUNNABLE: 実行可能ですが、クォンタムの受信を待機しています。RUNNABLE: Runnable, but waiting to receive a quantum.

実行中: 現在スケジューラ上で実行されています。RUNNING: Currently running on the scheduler.

[中断]: ワーカーがありますが、イベントを待機しています。SUSPENDED: Has a worker, but is waiting for an event.

完了: 完了しました。DONE: Completed.

SPINLOOP: スピンロックで停止しています。SPINLOOP: Stuck in a spinlock.
context_switches_countcontext_switches_count intint このタスクが完了したスケジューラコンテキストスイッチの数。Number of scheduler context switches that this task has completed.
pending_io_countpending_io_count intint このタスクによって実行される物理 i/o の数。Number of physical I/Os that are performed by this task.
pending_io_byte_countpending_io_byte_count bigintbigint このタスクによって実行される i/o の合計バイト数。Total byte count of I/Os that are performed by this task.
pending_io_byte_averagepending_io_byte_average intint このタスクによって実行される i/o の平均バイト数。Average byte count of I/Os that are performed by this task.
scheduler_idscheduler_id intint 親スケジューラの ID。ID of the parent scheduler. これは、このタスクの scheduler 情報を処理するハンドルです。This is a handle to the scheduler information for this task. 詳細については、「 sys. dm_os_schedulers (transact-sql)」を参照してください。For more information, see sys.dm_os_schedulers (Transact-SQL).
session_idsession_id smallintsmallint タスクに関連付けられているセッションの ID。ID of the session that is associated with the task.
exec_context_idexec_context_id intint タスクに関連付けられている実行コンテキスト ID。Execution context ID that is associated with the task.
request_idrequest_id intint タスクの要求の ID。ID of the request of the task. 詳細については、「 sys. dm_exec_requests (transact-sql)」を参照してください。For more information, see sys.dm_exec_requests (Transact-SQL).
worker_addressworker_address varbinary (8)varbinary(8) タスクを実行しているワーカーのメモリアドレス。Memory address of the worker that is running the task.

NULL = タスクは、ワーカーが実行可能になるのを待機しているか、タスクの実行が完了した直後です。NULL = Task is either waiting for a worker to be able to run, or the task has just finished running.

詳細については、「 sys. dm_os_workers (transact-sql)」を参照してください。For more information, see sys.dm_os_workers (Transact-SQL).
host_addresshost_address varbinary (8)varbinary(8) ホストのメモリアドレス。Memory address of the host.

0 = ホストはタスクの作成に使用されませんでした。0 = Hosting was not used to create the task. これは、このタスクの作成に使用されたホストを識別するのに役立ちます。This helps identify the host that was used to create this task.

詳細については、「 sys. dm_os_hosts (transact-sql)」を参照してください。For more information, see sys.dm_os_hosts (Transact-SQL).
parent_task_addressparent_task_address varbinary (8)varbinary(8) オブジェクトの親であるタスクのメモリアドレス。Memory address of the task that is the parent of the object.
pdw_node_idpdw_node_id intint 適用対象: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse), Parallel Data WarehouseParallel Data Warehouse

このディストリビューションが配置されているノードの識別子。The identifier for the node that this distribution is on.


SQL ServerSQL Server は、 VIEW SERVER STATE 権限が必要です。On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
SQL DatabaseSQL DatabasePremium レベルでは、データベースの権限が必要です VIEW DATABASE STATEOn SQL DatabaseSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. SQL DatabaseSQL DatabaseStandard レベルおよび Basic レベルでは、サーバー管理者またはAzure Active Directory 管理者アカウントが必要です。On SQL DatabaseSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.


A.A. 並列要求の監視Monitoring parallel requests

並列で実行される要求の場合は、同じ組み合わせ ( < session_id>、 < request_id>) に対して複数の行が表示されます。For requests that are executed in parallel, you will see multiple rows for the same combination of (<session_id>, <request_id>). 次のクエリを使用して、すべてのアクティブな要求に対する並列処理の最大限度を構成するサーバー構成オプションを検索します。Use the following query to find the Configure the max degree of parallelism Server Configuration Option for all active requests.


Request_idは、セッション内で一意です。A request_id is unique within a session.

  FROM sys.dm_os_tasks  
  ORDER BY session_id, request_id;  

B.B. セッション ID を Windows のスレッドに関連付けるAssociating session IDs with Windows threads

次のクエリを使用して、セッション ID の値を Windows スレッド ID に関連付けることができます。You can use the following query to associate a session ID value with a Windows thread ID. これにより、Windows パフォーマンス モニターでスレッドのパフォーマンスを監視できます。You can then monitor the performance of the thread in the Windows Performance Monitor. 次のクエリでは、スリープ状態のセッションに関する情報は返されません。The following query does not return information for sessions that are sleeping.

SELECT STasks.session_id, SThreads.os_thread_id  
  FROM sys.dm_os_tasks AS STasks  
  INNER JOIN sys.dm_os_threads AS SThreads  
    ON STasks.worker_address = SThreads.worker_address  
  WHERE STasks.session_id IS NOT NULL  
  ORDER BY STasks.session_id;  

参照See Also

SQL Server オペレーティングシステム関連の動的管理ビュー (Transact-sql) SQL Server Operating System Related Dynamic Management Views (Transact-SQL)
スレッドおよびタスクのアーキテクチャ ガイドThread and Task Architecture Guide