Share via


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;