性能检测参考SQL语句
/****** 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语句的更多相关文章
- SQL Server数据库性能优化之SQL语句篇【转】
SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...
- DBA 需要知道N种对数据库性能的监控SQL语句
--DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...
- Oracle性能优化之SQL语句
1.SQL语句执行过程 1.1 SQL语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...
- 数据库性能调优——sql语句优化(转载及整理) —— 篇2
下面是在网上搜集的一些个人认为比较正确的调优方案,如有错误望指出,定虚心改正 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中 ...
- 数据库性能调优——sql语句优化(转载及整理) —— 篇1
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实 ...
- 数据库性能优化之SQL语句优化
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等是体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...
- ORACLE性能优化之SQL语句优化
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 操作环境:AIX +11g+PLSQL 包含以下内容: 1. SQL语句执行过程 2. 优化器及执行计划 3. 合 ...
- 数据库性能优化之SQL语句优化(上)
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的 ...
- EBS开发性能优化之SQL语句优化
(1)选择运算 尽可能先做选择运算,这是优化策略中最重要.最基本的一条,选择运算一般会使计算的中间结果大大变小,在对同一表格进行多个选择运算时,选择条件的排列顺序对性能也有很大影响,因为排列顺序不仅影 ...
随机推荐
- xcode找回欢迎界面
[xcode找回欢迎界面] 有一次嫌xcode界面烦,点击了以下checkbox取消了欢迎界面: 随后发现没了欢迎界面反而更不方便,一心想找回欢迎界面,Preference里找了半天没找到开关,原来开 ...
- spring 项目返回406
406 The resource identified by this request is only capable of generating responses with characteris ...
- 05-nginx定时任务完成日志切割
目标:每天晚上凌晨一点钟左右把昨天的任务给它切掉,把昨天的日志给它改个名存起来,根据昨天的时间给它改个名存起来,所以要根据日期生成文件名. 也许你不会写bash脚本,但是老师带着你一步一步地来. sh ...
- Codeforces 1120C Compress String(DP)
题意:给你一个字符串,有2种消除方式:1:消除一个单独的字母,代价为a.2:s[j]到s[k]是s[1]到s[j - 1]的子串,那么s[j]到s[k]可以消除,代价为b,问最小的代价. 思路:官方题 ...
- vectors 使用应该注意到的问题
ector1. vector的元素必须具备 assignable和 copyable . 2.vector的迭代器是随机存取迭代器. 3.要考虑到vector的大小(size)和容量(capacity ...
- 724. Find Pivot Index 找到中轴下标
[抄题]: Given an array of integers nums, write a method that returns the "pivot" index of th ...
- 566. Reshape the Matrix矩阵重排
[抄题]: In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a ...
- unity5.6里Baked Lighting下面几个Lighting Mode的解释
这个似乎是新增的功能,目前在官方文档里还没有解释,但有一个链接指向『草案』, 可是链接在被墙的google doc上,为了方便阅读和备忘,全部贴过来整在一起: 因为原文太长,把总结写在前面吧: 1.四 ...
- dev 官网
https://www.devexpress.com/Support/Center/Example/Details/E1343 <%@ Page Language="C#" ...
- 实践作业3:白盒测试----findbugs介绍及使用DAY7
本小组选择的是一个开源的Java静态代码分析工具----Findbugs. 与其他静态分析工具(如Checkstyle和PMD)不同,FindBugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜 ...