sys.dm_exec_sql_text
更新日期: 2006 年 12 月 12 日
返回由指定的 sql_handle 标识的 SQL 批处理的文本。该表值函数将替换系统函数 fn_get_sql。
sys.dm_exec_sql_text(sql_handle)
sql_handle
要查找的批处理的 SQL 句柄。sql_handle 的数据类型为 varbinary(64)。可以从以下动态管理对象中获得 sql_handle:- sys.dm_exec_query_stats
- sys.dm_exec_requests
- sys.dm_exec_cursors
- sys.dm_exec_xml_handles
- sys.dm_exec_query_memory_grants
列名 | 数据类型 | 说明 |
---|---|---|
dbid |
smallint |
数据库的 ID。 对于临时和预定义 SQL 语句为 NULL。 |
objectid |
int |
对象的 ID。 对于临时和预定义 SQL 语句为 NULL。 |
number |
smallint |
对于带编号的存储过程,此列返回存储过程的编号。有关详细信息,请参阅sys.numbered_procedures (Transact-SQL)。 对于临时和预定义 SQL 语句为 NULL。 |
encrypted |
bit |
1 = SQL 文本已加密。 0 = SQL 文本未加密。 |
text |
nvarchar(max) |
SQL 查询的文本。 对于已加密对象为 NULL。 |
对于批处理,SQL 句柄是基于 SQL 文本的哈希值。对于诸如存储过程、触发器或函数之类的数据库对象,SQL 句柄派生自数据库 ID、对象 ID 和对象编号。
需要对服务器具有 VIEW SERVER STATE 权限。
以下示例返回前五个查询的 SQL 语句文本和平均 CPU 时间。
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;
以下示例返回按批执行的 SQL 查询的文本,并提供有关它们的统计信息。
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;
动态管理视图和函数
与执行有关的动态管理视图和函数
sys.dm_exec_query_stats
sys.dm_exec_requests
sys.dm_exec_cursors
sys.dm_exec_xml_handles
sys.dm_exec_query_memory_grants
发布日期 | 历史记录 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|