sql server 根据执行计划查询耗时操作
Posted 漂泊雪狼的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 根据执行计划查询耗时操作相关的知识,希望对你有一定的参考价值。
1 with QS as( 2 select cp.objtype as object_type, /*类型*/ 3 db_name(st.dbid) as [database], /*数据库*/ 4 object_schema_name(st.objectid,st.dbid) as [schema], /*架构*/ 5 object_name(st.objectid,st.dbid) as [object], /*对象名*/ 6 convert(char(16),qs.creation_time,120) as plan_creation, /*计划生成时间*/ 7 convert(char(16),qs.last_execution_time,120) as last_execution, /*最后执行时间*/ 8 qs.plan_generation_num, 9 qs.execution_count, /*执行次数*/ 10 qs.total_elapsed_time/(1000*qs.execution_count) as avg_elapesd_seconds, /*总花费时间ms*/ 11 qs.total_worker_time/(1000*qs.execution_count) as avg_cpu_cost, /*平均cpu耗时ms*/ 12 qs.total_logical_reads/qs.execution_count as avg_logical_reads, /*平均逻辑读*/ 13 qs.total_logical_writes/qs.execution_count as avg_logical_writes, /*平均逻辑写*/ 14 qs.total_physical_reads/qs.execution_count as avg_physical_reads, /*平均屋里读*/ 15 st.text, /*执行文本*/ 16 qp.query_plan /*执行计划*/ 17 from sys.dm_exec_query_stats qs 18 join sys.dm_exec_cached_plans cp on cp.plan_handle=qs.plan_handle 19 cross apply sys.dm_exec_sql_text(sql_handle) as st 20 cross apply sys.dm_exec_query_plan(qs.plan_handle) as qp 21 )select top 20 * from QS 22 where text like ‘%%‘ 23 --and object_type=‘Proc‘ 24 --and avg_logical_reads>200 25 and execution_count>100 /*执行次数*/ 26 --and last_execution_time>dateadd(mi,-10,getdate()) 27 and last_execution >= ‘2016-05-01 00:00:00.000‘ /*最后执行时间*/ 28 order by avg_cpu_cost desc 29
以上是关于sql server 根据执行计划查询耗时操作的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 执行计划操作符详解——串联(Concatenation )
SQL Server 2016新特性:Live Query Statistics