sys.dm_exec_cursors (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Çeşitli veritabanlarında açık olan imleçler hakkında bilgi döndürür.

Syntax

  
dm_exec_cursors (session_id | 0 )  

Argümanlar

session_id | 0
Oturumun kimliği. Eğer session_id belirtilirse, bu fonksiyon belirtilen oturumdaki imleçler hakkında bilgi döndürür.

0 belirtilmişse, fonksiyon tüm oturumlar için tüm imleçler hakkında bilgi döndürür.

Döndürülen Tablo

Sütun adı Veri türü Description
session_id int Bu imleci tutan oturumun kimliği.
cursor_id int İmleç nesnesinin kimliği.
name nvarchar(256) Kullanıcı tarafından tanımlanan imlecin adı.
Özellikler nvarchar(256) İmlecinin özelliklerini belirtir. Aşağıdaki özelliklerin değerleri bu sütunun değerini oluşturmak üzere birleştirilmiştir:
Bildiri Arayüzü
İmleç Tipi
İmleç eşzamanlılığı
İmleç dürbünü
İmleç iç içe oluşturma seviyesi

Örneğin, bu sütunda döndürülen değer "TSQL | Dinamik | İyimser | Küresel (0)".
sql_handle varbinary(64) İmleci bildiren partinin metnine geçin.
statement_start_offset int Şu anda yürüten ifadenin başladığı şu anda çalışan toplu veya depolanan prosedüre giren karakter sayısı. sql_handle, statement_end_offsetve sys.dm_exec_sql_text dinamik yönetim işleviyle birlikte istek için şu anda yürütülen deyimini almak için kullanılabilir.
statement_end_offset int Şu anda yürüten ifadenin sona erdiği şu anda yürüten toplu veya depolanan prosedüre karakter sayısı. sql_handle, statement_start_offsetve sys.dm_exec_sql_text dinamik yönetim işleviyle birlikte kullanılarak istek için şu anda yürütülen deyimi alınabilir.
plan_generation_num bigint Yeniden derleme sonrası plan örneklerini ayırt etmek için kullanılabilen bir dizi numarası.
creation_time datetime Bu imlecin oluşturulduğu zaman damgası.
is_open bit İmlecin açık olup olmadığını belirtir.
is_async_population bit Arka plan iş parçacığının hâlâ bir KEYSET veya STATIC imlecini asenkron olarak doldurup doldurmadığını belirtir.
is_close_on_commit bit İmlecin ile CURSOR_CLOSE_ON_COMMITilan edilip edilmediğini belirtir.

1 = İşlem sona erdiğinde imleç kapanır.
fetch_status int İmlecinin son getirme durumunu döndürüyor. Bu, son geri dönen @@FETCH_STATUS değeridir.
fetch_buffer_size int Getirme tamponunun boyutu hakkında bilgi döndürür.

1 = Transact-SQL imleç. Bu, API imlecatları için daha yüksek bir değere ayarlanabilir.
fetch_buffer_start int FAST_FORWARD ve DYNAMIC imleçler için, imleç açık değilse veya ilk satırın önünde konumlanmışsa 0 döner. Aksi takdirde -1 döner.

STATIC ve KEYSET imleçleri için, imleç açık değilse 0 döner, son sıranın ötesinde konumlanmışsa -1 döner.

Aksi takdirde, bulunduğu satır numarasını döndürür.
ansi_position int İmleç tamponu içinde imleç konumu.
worker_time bigint Bu imleci uygulayan işçilerin mikrosaniyeler içinde harcadığı zaman.
Okur bigint İmleç tarafından yapılan okuma sayısı.
Yazar bigint İmleç tarafından yapılan yazı sayısı.
dormant_duration bigint Bu imlecte son sorgu (aç veya getir) başladığından bu yana milisaniyeler geçti.

Permissions

Sunucuda SUNUCU DURUMU izni gerektirir VIEW .

SQL Server 2022 ve üzeri için izinler

Sunucuda SERVER PERFORMANCE STATE izni gerektirir VIEW .

Açıklamalar

Aşağıdaki tablo, imleç bildirme arayüzü hakkında bilgi verir ve özellikler sütunu için olası değerleri içerir.

Property Description
API İmleç, veri erişim API'lerinden (ODBC, OLEDB) kullanılarak ilan edildi.
TSQL İmleç, Transact-SQL DECLARE CURSOR sözdizimi kullanılarak ilan edildi.

Aşağıdaki tablo, imleç tipi hakkında bilgi verir ve özellikler sütunu için olası değerleri içerir.

Türü Description
Anahtar Kümesi Cursor Anahtar Seti olarak ilan edildi.
Dinamik Cursor Dinamik olarak ilan edildi.
Snapshot İmleç Snapshot veya Statik olarak tanımlandı.
Fast_Forward Cursor, Fast Forward olarak ilan edildi.

Aşağıdaki tablo, imleç eşdeğerliği hakkında bilgi verir ve özellikler sütunu için olası değerleri içerir.

Concurrency Description
Yalnızca Okunur İmleç yalnızca okunabilir olarak ilan edildi.
Scroll Locks İmleç kaydırma kilitleri kullanıyor.
Iyimser İmleç iyimser eşzamanlılık kontrolü kullanır.

Aşağıdaki tablo, imleç kapsamı hakkında bilgi verir ve özellikler sütunu için olası değerleri içerir.

Scope Description
Local İmlecin kapsamının, imlecin oluşturulduğu toplu iş, saklı yordam veya tetikleyici için yerel olduğunu belirtir.
Küresel İmlecin kapsamının bağlantı için genel olduğunu belirtir.

Examples

A. Eski imleçleri tespit etmek

Bu örnek, belirtilen 36 saatten fazla açık olan imleçler hakkında bilgi verir.

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  

Ayrıca Bkz.

Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
Yürütmeyle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)