如何得到执行最耗时的前N条T-SQL语句
2012-03-01 14:14
253 查看
--得到最耗时的前N条T-SQL语句
--适用于SQL SERVER 2005及其以上版本
--给N赋初值为30
declare @n int set @n=30
;with maco as
(
select top (@n)
plan_handle,
sum(total_worker_time) as total_worker_time ,
sum(execution_count) as execution_count ,
count(1) as sql_count
from sys.dm_exec_query_stats group by plan_handle
order by sum(total_worker_time) desc
)
select t.text ,
a.total_worker_time ,
a.execution_count ,
a.sql_count
from maco a
cross apply sys.dm_exec_sql_text(plan_handle) t
获取有关按平均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 SERVER 2005及其以上版本
--给N赋初值为30
declare @n int set @n=30
;with maco as
(
select top (@n)
plan_handle,
sum(total_worker_time) as total_worker_time ,
sum(execution_count) as execution_count ,
count(1) as sql_count
from sys.dm_exec_query_stats group by plan_handle
order by sum(total_worker_time) desc
)
select t.text ,
a.total_worker_time ,
a.execution_count ,
a.sql_count
from maco a
cross apply sys.dm_exec_sql_text(plan_handle) t
获取有关按平均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;
相关文章推荐
- 如何得到执行最耗时的前N条T-SQL语句
- 如何得到执行最耗时的前N条T-SQL语句--【叶子】
- MS SQL Server 如何得到执行最耗时的前N条T-SQL语句-
- MSSQL 得到执行最耗时的前N条T-SQL语句
- oracle中如何得到一条SQL语句的执行时间
- oracle中得到一条SQL语句的执行时间的两种方式
- 012-HQL中级2-Hive如何执行文件中的sql语句
- 如何定位mysql中执行很慢的sql 语句
- SQL Server如何查看SQL语句的执行时间
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- 如何在JAVA代码中执行 exec master..xp_cmdshell @cmd // 当作SQL语句调用就成了 或者调用 Runtime.getRuntime().exec
- plsql developer如何查询SQL语句执行历史记录
- mybatis如何在控制台打印执行的sql语句
- 如何获取sql的exec执行语句的返回值?
- oracle存储过程中如何执行动态SQL语句
- 如何使用SQLPLUS分析SQL语句(查询执行计划跟踪)
- SQL语句在数据库中是如何执行的
- 如何跟踪mysql执行的sql语句
- Oracle- plsql developer如何查询SQL语句执行历史记录
- 如何得到JDBC Insert 语句执行后插入Oracle 数据库记录的主键