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)

sys.dm_exec_xml_handles (Transact-sql)

sys.dm_exec_query_memory_grants (Transact-sql)