获取有关按平均 CPU 时间排在最前面的五个查询的信息.
来源:互联网 发布:从使用者角度 云计算 编辑:程序博客网 时间:2024/06/05 08:15
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;
sys.dm_exec_query_stats :是在msdb Database 中的动态管理视图,返回缓存查询计划的聚合性能统计信息。缓存计划中的每个查询语句在该视图中对应一行,并且行的生存期与计划本身相关联。在从缓存删除计划时,也将从该视图中删除对应行。
total_worker_time :此计划自编译以来执行所用的 CPU 时间总量(微秒)。
execution_count: 计划自上次编译以来所执行的次数。
statement_start_offset :指示行所说明的查询在其批查询或持久化对象文本中的开始位置(字节,以 0 开头)。statement_end_offset :指示行所说明的查询在其批查询或持久化对象文本中的结束位置(字节,以 0 开头)。值 -1 指示批查询的结尾处。
sys.dm_exec_sql_text(@sql_handle) : msdb Databaes 中的系统表值函数,返回由指定的 sql_handle 标识的 SQL 批处理的文本。该表值函数将替换系统函数 fn_get_sql.
@sql_handle : 要查找的批处理的 SQL 句柄。@sql_handle 的数据类型为 varbinary(64)。可以从以下动态管理对象中获得
返回 dbid,objectid,number (对于带编号的存储过程,此列返回存储过程的编号),encrypted(bit),text( nvarchar(max) 以加密对象返回NULL
什么是sql句柄:对于批处理,SQL 句柄是基于 SQL 文本的哈希值。对于诸如存储过程、触发器或函数之类的数据库对象,SQL 句柄派生自数据库 ID、对象 ID 和对象编号。
几个相关的查询
批处理执行统计信息
SELECT sp.name AS [Name], 'Server[@Name=' + quotename(CAST(serverproperty(N'Servername') AS sysname),'''')
+ ']' + '/Database[@Name=' + quotename(db_name(),'''') + ']'
+ '/StoredProcedure[@Name=' + quotename(sp.name,'''')
+ ' and @Schema='
+ quotename(SCHEMA_NAME(sp.schema_id),'''') + ']' AS [Urn]
, SCHEMA_NAME(sp.schema_id) AS [Schema]
, CAST(CASE WHEN ISNULL(smsp.definition, ssmsp.definition) IS NULL
THEN 1 ELSE 0 END AS bit) AS [IsEncrypted]
, CASE WHEN sp.type = N'P' THEN 1 WHEN sp.type = N'PC' THEN 2 ELSE 1 END AS [ImplementationType]
, sp.create_date AS [CreateDate]
FROM sys.all_objects AS sp
LEFT OUTER JOIN sys.sql_modules AS smsp ON smsp.object_id = sp.object_id
LEFT OUTER JOIN sys.system_sql_modules AS ssmsp ON ssmsp.object_id = sp.object_id
WHERE (sp.type = N'P' OR sp.type = N'RF' OR sp.type='PC')
and(CAST( case when sp.is_ms_shipped = 1 then 1
when ( select major_id
from sys.extended_properties
where major_id = sp.object_id
and minor_id = 0
and class = 1
and name = N'microsoft_database_tools_support') is not null
then 1 else 0 end AS bit)=1)
ORDER BY [Schema] ASC,[Name] ASC
- 获取有关按平均 CPU 时间排在最前面的五个查询的信息.
- 按平均 CPU 时间返回排名前50个的查询的相关信息
- SQL:查询出数据,按序号排序,并将一个或是多个特定的数据排在最前面
- 让MessageBox在最前面弹出来的信息在
- 如何记录应用的接口访问信息(调用次数,最长时间、最短时间、平均时间等等)
- 有三个国家名,要求找出按字母排序排在最前面的国家。要求用函数调用。
- 国家、城市等按照字母排序,但个别城市排在最前面的实现方法
- 五个同学的平均成绩
- 五个未来最吃香的技能 数据分析排第一
- uptime详解,最通俗的说明了cpu平均负载
- uptime详解,最通俗的说明了cpu平均负载
- Android获取当前最前面的Activity
- 获取类的有关信息
- android cpu信息的获取
- 将字符串中的小写字母排在大写字母的前面
- 所有的正整数排在所有负数前面
- 关于程序在最前面的问题
- 在地址栏的最前面添加图片
- 单件模式(Singleton Pattern)
- GoF模式打开的新境界
- 数据结构之链表
- C++里的通用算法
- 非模式思维的惩罚
- 获取有关按平均 CPU 时间排在最前面的五个查询的信息.
- 【白皮书】SnapArchiving - Oracle历史数据归档与查询管理软件
- 构造arm-linux交叉编译工具链(Tool Chain)
- Ruby的Integer数据类型
- DSG证券基金行业本地异地容灾备份查询一体化方案(西部证券)
- 了解电子邮件:E-Mail从入门到精通
- RealSync大型Oracle数据库跨平台迁移案例(杭州电信3.5T帐务系统 IBM-HP)
- 网游遭史上最大黑客攻击 四游戏被黑
- 模式分析和基于Python的DSLs的必要性