sys.dm_exec_SQL_text (Transact-SQL)
Tanımlanan SQL toplu iş metni verir tarafından belirtilen sql_handle.Bu tablo-değerli işlev sistem işlevdeğiştirirfn_get_sql.
Sözdizimi
sys.dm_exec_sql_text(sql_handle | plan_handle)
Bağımsız değişkenler
sql_handle
Bakılacak toplu iş SQL tanıtıcı değil.sql_handleis varbinary(64).sql_handleAşağıdaki dinamik yönetimi nesneleri elde edilebilir:sys.dm_exec_query_stats
sys.dm_exec_requests
sys.dm_exec_cursors
sys.dm_exec_xml_handles
sys.dm_exec_query_memory_grants
sys.dm_exec_connections
plan_handle
Sorgu planı için bir tanımlayıcıdır.Daha fazla bilgi için, bkz. sys.dm_exec_text_query_plan (Transact-SQL).
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
DBID |
smallint |
Veritabanı kimliği. Olan geçici ve hazırlanmış SQL deyimleri için null. |
objectID |
int |
Nesne kimliği. Olan geçici ve hazırlanmış SQL deyimleri için null. |
sayı |
smallint |
Bir numaralı saklı yordamiçin bu sütun saklı yordamsayısını verir.Daha fazla bilgi için, bkz. sys.numbered_procedures (Transact-SQL). Olan geçici ve hazırlanmış SQL deyimleri için null. |
Şifreli dosya |
bit |
1 = SQL metin şifrelenir. 0 = SQL metin şifrelenmiş değildir. |
metin |
nvarchar(max) |
SQL sorgu metni. Olan şifreli nesneler için null. |
İzinler
Sunucu üzerindeki görünüm server state izni gerektirir.
Açıklamalar
Toplu işlemleri için SQL tanıtıcılar SQL metni temel alan karma değerlerdir.Saklı yordamlar, Tetikleyiciler veya işlevleri gibi veritabanı nesneleri için veritabanı kimliği, nesne kimliği ve nesne numarası SQL tanıtıcılar türetilir.plan_handle bir karma değer tüm toplu işderlenmiş planından türetilir.
Örnekler
A.Ortalama cpu saattarafından üst beş sorguları hakkında bilgi edinme
Aşağıdaki örnek SQL deyim ve ortalama cpu saat üst beş sorgular için metin döndürür.
SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;
B.toplu işsağlama-yürütme istatistikleri
Aşağıdaki örnek, toplu olarak yürütülen SQL sorguları metni verir ve bunlarla ilgili istatistik bilgiler sağlar.
SELECT s2.dbid,
s1.sql_handle,
(SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 ,
( (CASE WHEN statement_end_offset = -1
THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2)
ELSE statement_end_offset END) - statement_start_offset) / 2+1)) AS sql_statement,
execution_count,
plan_generation_num,
last_execution_time,
total_worker_time,
last_worker_time,
min_worker_time,
max_worker_time,
total_physical_reads,
last_physical_reads,
min_physical_reads,
max_physical_reads,
total_logical_writes,
last_logical_writes,
min_logical_writes,
max_logical_writes
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE s2.objectid is null
ORDER BY s1.sql_handle, s1.statement_start_offset, s1.statement_end_offset;
Ayrıca bkz.