dm_exec_query_stats 几点心得

dm_exec_query_stats是MS SQL Server2005新提供的系统函数,初次使用发现功能非常全面。可以提供一些特殊的解决问题的思路。
 1 SELECT qs.execution_count,
 2     SUBSTRING(qt.text,qs.statement_start_offset/2 +1
 3                  (CASE WHEN qs.statement_end_offset = -1 
 4                        THEN LEN(CONVERT(nvarchar(max), qt.text)) * 2 
 5                        ELSE qs.statement_end_offset end -
 6                             qs.statement_start_offset
 7                  )/2
 8              ) AS query_text, 
 9      qt.dbid, dbname= DB_NAME (qt.dbid), qt.objectid, 
10      qs.total_rows, qs.last_rows, qs.min_rows, qs.max_rows
11 FROM sys.dm_exec_query_stats AS qs 
12 CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt 
13 WHERE qt.text like '%SELECT%' 
14 ORDER BY qs.execution_count DESC


 1 如果目标数据库查询有问题,可以尝试切换成master DB

 2 sql_handle的类型为 varbinary(64) ,在CLR里被转换成byte[]。可以使用 sys.fn_varbintohexstr(sql_handle)进行序列化。

 3 dbcc freeProcCache 用来清除缓存

标签: SQL
posted @ 2011-07-13 15:41 华志昊 阅读(57) 评论(0) 编辑 收藏