sys.dm_exec_cursors (TRANSACT-SQL)sys.dm_exec_cursors (Transact-SQL)

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

各種データベースで開いているカーソルに関する情報を返します。Returns information about the cursors that are open in various databases.

構文Syntax

  
dm_exec_cursors (session_id | 0 )  

引数Arguments

session_id | 0session_id | 0
セッションの ID を指定します。ID of the session. 場合session_idを指定すると、この関数は、指定したセッションでカーソルに関する情報を返します。If session_id is specified, this function returns information about cursors in the specified session.

0 を指定した場合、この関数ではすべてのセッションのすべてのカーソルに関する情報が返されます。If 0 is specified, the function returns information about all cursors for all sessions.

返されるテーブルTable Returned

列名Column name データ型Data type 説明Description
session_idsession_id intint このカーソルを保持しているセッションの ID。ID of the session that holds this cursor.
cursor_idcursor_id intint カーソル オブジェクトの ID。ID of the cursor object.
namename nvarchar (256)nvarchar(256) ユーザーによって定義されたカーソルの名前。Name of the cursor as defined by the user.
propertiesproperties nvarchar (256)nvarchar(256) カーソルのプロパティ。Specifies the properties of the cursor. この列の値をフォームに次のプロパティの値が連結されます。The values of the following properties are concatenated to form the value of this column:
宣言インターフェイスDeclaration Interface
カーソルの種類Cursor Type
カーソルの同時実行Cursor Concurrency
カーソルのスコープCursor scope
カーソルの入れ子レベルCursor nesting level

たとえば、この列に返される値があります"TSQL|動的|Optimistic | Global (0)"。For example, the value returned in this column might be "TSQL | Dynamic | Optimistic | Global (0)".
sql_handlesql_handle varbinary(64)varbinary(64) カーソルを宣言したバッチのテキストへのハンドルします。Handle to the text of the batch that declared the cursor.
statement_start_offsetstatement_start_offset intint 現在実行中に文字数のバッチまたはストアド プロシージャが現在実行中のステートメントの開始位置。Number of characters into the currently executing batch or stored procedure at which the currently executing statement starts. 組み合わせて使用することができます、 sql_handlestatement_end_offset、およびsys.dm_exec_sql_text動的管理関数を取得する、現在要求のステートメントを実行します。Can be used together with the sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request.
statement_end_offsetstatement_end_offset intint 現在実行中に文字数のバッチまたはストアド プロシージャが現在実行中のステートメントが終了します。Number of characters into the currently executing batch or stored procedure at which the currently executing statement ends. 組み合わせて使用することができます、 sql_handlestatement_start_offset、およびsys.dm_exec_sql_text動的管理関数を取得する、現在要求のステートメントを実行します。Can be used together with the sql_handle, the statement_start_offset, and the sys.dm_exec_sql_text dynamic management function to retrieve the currently executing statement for the request.
plan_generation_numplan_generation_num bigintbigint 再コンパイル後、プランのインスタンス間で区別するために使用できるシーケンス番号。A sequence number that can be used to distinguish between instances of plans after recompilation.
creation_timecreation_time datetimedatetime カーソルが作成されたタイムスタンプ。Timestamp when this cursor was created.
is_openis_open bitbit カーソルが開いているかどうかを示します。Specifies whether the cursor is open.
is_async_populationis_async_population bitbit KEYSET または STATIC カーソルが非同期にバック グラウンド スレッドが作成するかどうかを指定します。Specifies whether the background thread is still asynchronously populating a KEYSET or STATIC cursor.
is_close_on_commitis_close_on_commit bitbit CURSOR_CLOSE_ON_COMMIT を使用して、カーソルが宣言されているかどうかを指定します。Specifies whether the cursor was declared by using CURSOR_CLOSE_ON_COMMIT.

1 = カーソルはトランザクションが終了したときに閉じられます。1 = Cursor will be closed when the transaction ends.
fetch_statusfetch_status intint 返します。 は、最後、カーソルの状態を取得します。Returns last fetch status of the cursor. これは、返された最終@FETCH_STATUS値。This is the last returned @@FETCH_STATUS value.
fetch_buffer_sizefetch_buffer_size intint フェッチ バッファーのサイズに関する情報。Returns information about the size of the fetch buffer.

1 = Transact-SQL カーソル。1 = Transact-SQL cursors. これは、API カーソルに最高値に設定できます。This can be set to a higher value for API cursors.
fetch_buffer_startfetch_buffer_start intint FAST_FORWARD と DYNAMIC カーソルでは、最初の行の前に配置されている場合、カーソルが開いていない場合または 0 を返します。For FAST_FORWARD and DYNAMIC cursors, it returns 0 if the cursor is not open or if it is positioned before the first row. それ以外のときは -1 が返されます。Otherwise, it returns -1.

STATIC と KEYSET カーソルでは、カーソルはオープン、および-1、カーソルが最後の行外に配置されている場合場合 0 を返します。For STATIC and KEYSET cursors, it returns 0 if the cursor is not open, and -1 if the cursor is positioned beyond the last row.

それが配置されている行番号を返します。Otherwise, it returns the row number in which it is positioned.
ansi_positionansi_position intint カーソルのフェッチ バッファー内の位置。Cursor position within the fetch buffer.
worker_timeworker_time bigintbigint 時間 (マイクロ秒)、このカーソルを実行するワーカーによって費やさ。Time spent, in microseconds, by the workers executing this cursor.
readsreads bigintbigint カーソルで実行された読み取りの数。Number of reads performed by the cursor.
書き込みwrites bigintbigint カーソルで実行された書き込みの数。Number of writes performed by the cursor.
dormant_durationdormant_duration bigintbigint 前回のクエリ以降のミリ秒 (開くまたはフェッチ) が、このカーソル上で開始します。Milliseconds since the last query (open or fetch) on this cursor was started.

アクセス許可Permissions

サーバーに対する VIEW SERVER STATE 権限が必要です。Requires VIEW SERVER STATE permission on the server.

コメントRemarks

次の表は、カーソル宣言インターフェイスについて説明し、プロパティ列の値が含まれています。The following table provides information about the cursor declaration interface and includes the possible values for the properties column.

プロパティProperty 説明Description
APIAPI カーソルは、データ アクセス Api (ODBC、OLEDB) のいずれかを使用して宣言されています。Cursor was declared by using one of the data access APIs (ODBC, OLEDB).
TSQLTSQL カーソルは、TRANSACT-SQL DECLARE CURSOR 構文を使用して宣言されています。Cursor was declared by using the Transact-SQL DECLARE CURSOR syntax.

次の表は、カーソルの種類に関する説明と、プロパティ列に返される値です。The following table provides information about the cursor type and includes the possible values for the properties column.

種類Type 説明Description
KeysetKeyset カーソルはキーセットとして宣言されています。Cursor was declared as Keyset.
動的Dynamic カーソルは Dynamic として宣言されました。Cursor was declared as Dynamic.
スナップショットSnapshot カーソルは、スナップショットまたは Static として宣言されています。Cursor was declared as Snapshot or Static.
Fast_ForwardFast_Forward カーソルは高速順方向として宣言されています。Cursor was declared as Fast Forward.

次の表は、カーソルのコンカレンシーに関する説明と、プロパティ列に返される値です。The following table provides information about cursor concurrency and includes the possible values for the properties column.

コンカレンシーConcurrency 説明Description
[読み取り専用]Read Only カーソルは、読み取り専用として宣言されています。Cursor was declared as read-only.
スクロール ロックScroll Locks カーソルはスクロール ロックを使用します。Cursor uses scroll locks.
オプティミスティックOptimistic カーソルはオプティミスティック同時実行制御を使用します。Cursor uses optimistic concurrency control.

次の表は、カーソルのスコープについて説明し、プロパティ列の値が含まれています。The following table provides information about cursor scope and includes the possible values for the properties column.

スコープScope 説明Description
ローカルLocal カーソルのスコープは、カーソルが作成されたバッチ、ストアド プロシージャ、またはトリガーに対してローカルです。Specifies that the scope of the cursor is local to the batch, stored procedure, or trigger in which the cursor was created.
グローバルGlobal カーソルのスコープは、接続に対してグローバルです。Specifies that the scope of the cursor is global to the connection.

使用例Examples

A.A. 古いカーソルを検出します。Detecting old cursors

この例では、36 時間の指定した時間より長く、サーバー上で開いているカーソルに関する情報を返します。This example returns information about cursors that have been open on the server longer than the specified time of 36 hours.

SELECT creation_time, cursor_id, name, c.session_id, login_name   
FROM sys.dm_exec_cursors(0) AS c   
JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id   
WHERE DATEDIFF(hh, c.creation_time, GETDATE()) > 36;  
GO  

関連項目See Also

動的管理ビューと動的管理関数 (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
実行関連の動的管理ビューおよび関数(TRANSACT-SQL) Execution Related Dynamic Management Views and Functions (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)sys.dm_exec_sessions (Transact-SQL)