sys.dm_exec_sql_text (Transact-sql)
Yani toplu sql metni verir tespit tarafından belirtilen sql_handle. Tablo valued işlev sistem işlev fn_get_sql.
Sözdizimi
sys.dm_exec_sql_text(sql_handle | plan_handle)
Bağımsız değişkenler
sql_handle
Baktı üzere toplu sql tanıtıcı iş. 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ı Kımlığı. Geçici ve hazırlanmış sql deyimleri için ifadeler nerede derlendi veritabanı Kımlığı. |
ObjectId |
int |
Nesne Kımlığı. Olan geçici ve hazırlanmış sql deyimleri için null. |
Sayı |
smallint |
Bu sütun için numaralandırılmış bir saklı yordam, saklı yordam verir. Daha fazla bilgi için, bkz. sys.numbered_procedures (Transact-sql). Olan geçici ve hazırlanmış sql deyimleri için null. |
şifreli |
bit |
1 = sql metin şifrelenmiş. 0 = sql metin şifrelenmiş. |
metin |
nvarchar(max) |
sql sorgu metni. Olan şifreli nesneler için null. |
İzinler
Sunucu üzerindeki VIEW server state izni gerektirir.
Açıklamalar
Toplu işlemler için karma değerleri sql metin tabanlı sql tutamaçları vardır. Saklı yordamlar, Tetikleyiciler veya işlevleri gibi veritabanı nesneleri için sql tanıtıcılar veritabanı Kımlığı, nesne kimliği ve nesne numarası elde edilir. plan_handlekarma değer, tüm toplu derlenmiş planından türetilir.
Örnekler
A.Ortalama cpu zamanı tarafından üst beş sorgular hakkında bilgi edinme
Aşağıdaki örnek sql deyimi ve ortalama cpu süre üst beş sorguları metni verir.
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;
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ş yürütme istatistiklerini sağlama
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;
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.
Başvuru
Dinamik yönetimi görünümler ve işlevler (Transact-sql)
Yürütme dinamik yönetimi görünümler ve işlevler (Transact-sql) ilgili
sys.dm_exec_query_stats (Transact-sql)
sys.dm_exec_requests (Transact-sql)
sys.dm_exec_cursors (Transact-sql)