/****** Object:  StoredProcedure [dbo].[SP_CPU]    Script Date: 12/09/2018 19:01:24 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE Proc [dbo].[SP_CPU]
as
-- 单行平均耗时排行
SELECT TOP 10 total_worker_time / execution_count/1000 AS [Avg CPU Time],
(SELECT Substring(text, statement_start_offset / 2, ( CASE
WHEN statement_end_offset = -1 THEN Len(CONVERT(NVARCHAR(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset ) / 2)
FROM sys.Dm_exec_sql_text(sql_handle)) AS query_text,
last_execution_time,execution_count,total_worker_time,last_worker_time,min_worker_time,max_worker_time,total_elapsed_time,last_elapsed_time,min_elapsed_time,max_elapsed_time,last_logical_reads,last_logical_writes,last_physical_reads
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC GO

补充:

-- 汇总平均耗时排行
SELECT TOP 10 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count)/1000 AS "Avg CPU Time",
MIN(query_stats.statement_text) AS "Statement Text"
FROM
(SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE 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) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
GO
-- 单行耗时排行
SELECT TOP 10 total_worker_time / execution_count/1000 AS [Avg CPU Time],
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text,
QP.query_plan,
DB_NAME(ST.dbid) AS db_name,
obj.name AS obj_name,
last_execution_time,execution_count,total_worker_time,last_worker_time,min_worker_time,max_worker_time,total_elapsed_time,last_elapsed_time,min_elapsed_time,max_elapsed_time,last_logical_reads,last_logical_writes,last_physical_reads
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
CROSS APPLY sys.dm_exec_query_plan(QS.plan_handle) AS QP
CROSS APPLY sysobjects obj
WHERE ST.dbid = DB_ID()
AND ST.objectid = obj.id
--AND obj.name LIKE 'pr_get_%'
ORDER BY [Avg CPU Time] DESC
-- 对象耗时排行
SELECT TOP 10 cc.db_name,cc.obj_name,
SUM(total_worker_time) / SUM(execution_count)/1000 AS 'Avg CPU Time',
MIN(statement_text) AS 'Statement Text'
FROM (
SELECT
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text,
QP.query_plan,
DB_NAME(ST.dbid) AS db_name,
obj.name AS obj_name,
last_execution_time,execution_count,total_worker_time,last_worker_time,min_worker_time,max_worker_time,total_elapsed_time,last_elapsed_time,min_elapsed_time,max_elapsed_time,last_logical_reads,last_logical_writes,last_physical_reads
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
CROSS APPLY sys.dm_exec_query_plan(QS.plan_handle) AS QP
CROSS APPLY sysobjects obj
WHERE ST.dbid = DB_ID()
AND ST.objectid = obj.id
--AND obj.name LIKE 't_bd_%'
) cc
GROUP BY cc.db_name,cc.obj_name
ORDER BY [Avg CPU Time] DESC
SELECT TOP 10 sql_handle,plan_handle,* FROM sys.dm_exec_query_stats

-- 查SQL语句
SELECT dbid,objectid,encrypted,text,* FROM sys.dm_exec_sql_text (0x0200000096B5B034CDB8E45687480BB87E8A373F35AB3631)
-- 查SQL语句对应的执行计划
SELECT dbid,objectid,encrypted,query_plan,* FROM sys.dm_exec_query_plan (0x0600140096B5B03440E140A2000000000000000000000000)

性能检测参考SQL语句的更多相关文章

  1. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  2. DBA 需要知道N种对数据库性能的监控SQL语句

    --DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...

  3. Oracle性能优化之SQL语句

    1.SQL语句执行过程 1.1 SQL语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...

  4. 数据库性能调优——sql语句优化(转载及整理) —— 篇2

    下面是在网上搜集的一些个人认为比较正确的调优方案,如有错误望指出,定虚心改正 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中 ...

  5. 数据库性能调优——sql语句优化(转载及整理) —— 篇1

    一.问题的提出                    在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实 ...

  6. 数据库性能优化之SQL语句优化

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等是体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...

  7. ORACLE性能优化之SQL语句优化

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   操作环境:AIX +11g+PLSQL 包含以下内容: 1.  SQL语句执行过程 2.  优化器及执行计划 3.  合 ...

  8. 数据库性能优化之SQL语句优化(上)

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的 ...

  9. EBS开发性能优化之SQL语句优化

    (1)选择运算 尽可能先做选择运算,这是优化策略中最重要.最基本的一条,选择运算一般会使计算的中间结果大大变小,在对同一表格进行多个选择运算时,选择条件的排列顺序对性能也有很大影响,因为排列顺序不仅影 ...

随机推荐

  1. linux下的定时或计时操作(gettimeofday等的用法,秒,微妙,纳秒(转载)

    一.用select()函数实现非阻塞时的等待时间,用到结构体struct timeval {},这里就不多说了. 二.用gettimeofday()可获得微妙级(0.000001秒)的系统时间,调用两 ...

  2. 性能监控工具YourKit

    1.下载YourKit(在不同系统或终端下请保持版本一致) http://www.yourkit.com/java/profiler/index.jsp 2. 解压Linux的YourKit tar ...

  3. laravel数据迁移(创建错误列不能创建)

    创建数据表的命令 php artisan make:migration create_users_table 执行这个迁移的命令, php artisan migrate 其实感觉就像简单的方法创建数 ...

  4. 2-javascript::笔记

    0.位置: HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head& ...

  5. 16-math_M_PI

    头文件math.h中宏定义的是M_PI#define M_PI 3.14159265358979323846所以不需要记忆PI的值了可以直接用

  6. SQLAlchemy 进阶

    SQLAlchemy使用 1.执行原生SQL语句 from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engin ...

  7. hdu 2519 新生晚会 (求排列组合时容易溢出)

    #include<stdio.h> #include<algorithm> using namespace std; void cal(int n,int m) { ; m=m ...

  8. Tomcat与Web.xml配置

    1.编码配置 <Connector acceptCount=”100″ connectionTimeout=”20000″ disableUploadTimeout=”true” enableL ...

  9. 在sql server数据库可以插入在回车的数据

    insert into t_FamilyClass (id,ParentId,Name) values(111,111,'111')可以在编辑模式下copy到editplus中,设置 显示 空白字符: ...

  10. U盘安装Ubuntu 12.04成功后系统无法启动的原因及解决办法

    想搭建一个Linux开发环境,选择了ubuntu12.04长期支持版,采用u盘安装(Universal-USB-Installer做的启动),发现安装完成之后,拔掉u盘无法启动,插上u盘之后,可以重启 ...