通过sql的DMV查看数据库使用状态
--数据库隔离级别 读未提交
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; --查找每次执行时引发I/O最多的前10位的查询
SELECT TOP 10
total_logical_reads / execution_count avg_logical_reads ,
total_logical_writes / execution_count avg_logical_writes ,
total_physical_reads / execution_count avg_physical_reads ,
execution_count ,
( SELECT SUBSTRING(text, statement_start_offset / 2 + 1,
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)
) query_text ,
plan_handle
FROM sys.dm_exec_query_stats
ORDER BY total_logical_reads + total_logical_writes DESC; --查找查询消耗时间最长的前20个查询语句
SELECT TOP 20
CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2)) [Total Elapsed Duration(s)] ,
qs.execution_count ,
( SUBSTRING(text, statement_start_offset / 2 + 1,
CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), text)) * 2
ELSE statement_end_offset
END - statement_start_offset / 2) ) query_text ,
qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_elapsed_time DESC; --缓存计划所占用的 CPU 总使用率(带 SQL 文本)
SELECT total_cpu_time ,
total_execution_count ,
number_of_statements ,
s2.text
FROM ( SELECT TOP 20
SUM(qs.total_worker_time) AS total_cpu_time ,
SUM(qs.execution_count) AS total_execution_count ,
COUNT(*) AS number_of_statements ,
qs.sql_handle --,
FROM sys.dm_exec_query_stats AS qs
GROUP BY qs.sql_handle
ORDER BY SUM(qs.total_worker_time) DESC
) AS stats
CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) AS s2; --CPU 平均占用率最高的前 20 个 SQL 语句
SELECT TOP 20
total_worker_time / execution_count 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 ,
*
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC; --哪个查询占用了最多的 CPU 累计使用率
SELECT highest_cpu_queries.plan_handle ,
highest_cpu_queries.total_worker_time ,
q.dbid ,
q.objectid ,
q.number ,
q.encrypted ,
q.[text]
FROM ( SELECT TOP 20
qs.plan_handle ,
qs.total_worker_time
FROM sys.dm_exec_query_stats qs
ORDER BY qs.total_worker_time DESC
) AS highest_cpu_queries
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS q
ORDER BY highest_cpu_queries.total_worker_time DESC;
通过sql的DMV查看数据库使用状态的更多相关文章
- SQL Server:查看数据库用户权限(SQL 2005)
1. 查看 SQL 2005 用户所属数据库角色 use yourdb go select DbRole = g.name, MemberName = u.name, MemberSID = u.si ...
- Sql Server之使用T_SQL创建,修改,查看数据库信息
一.使用Transact_SQL创建数据库 Transact_SQL语法如下: create database database_name [ on [primary] [<fi ...
- SQL中查看数据库各表的大小
SQL中查看数据库各表的大小 编写人:CC阿爸 2014-6-17 在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小. 以下有两种方法供参考: 第一种: create table # ...
- 【转载】 Sqlserver查看数据库死锁的SQL语句
在Sqlsever数据库中,有时候操作数据库过程中会进行锁表操作,在锁表操作的过程中,有时候会出现死锁的情况出现,这时候可以使用SQL语句来查询数据库死锁情况,主要通过系统数据库Master数据库来查 ...
- SQL SERVER 查看数据库信息
a.使用sys.database_files查看有关数据库文件的信息 b.使用sys.filegroups查看有关数据库组的信息. c.使用sys.master_files 查看数据库文件的基本信息和 ...
- SQL Server 游标运用:查看数据库所有表大小信息
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:运用游标 方法二:运用系统存储过程 方法三:拼接SQL ...
- SQL Server 查看数据库在数据缓存(data cache)中占用的空间大小
use master go select * from sys.dm_os_buffer_descriptors go --查看数据库在数据缓存(data cache)中占用的空间大小 --由于每个数 ...
- SQL 查看数据库表的容量大小
--==============查看数据库表的容量大小========start================================?============ Create Table # ...
- Oracle—通过操作系统进程查看数据库sql语句
工作中遇到一个问题,某报表运行时间特别长,通过操作系统可以看到一个oracle进程消耗资源比较大,如何能够通过该操作系统进程找到具体SQL呢.记录如下: 1.查看Linux系统进程号 可以通过top动 ...
随机推荐
- 开发创建XMPP“发布订阅”扩展(xmpp pubsub extend)
发布订阅(PubSub)是一个功能强大的XMPP协议扩展.用户订阅一个项目(在xmpp中叫做node),得到通知时,也即当事项节点更新时.xmpp服务器通知用户(通过message格式). 节点类型: ...
- JPA-style positional param was not an integral ordinal
参数错误 多为SQL语句问题 例如SQL拼装中的空格,换行时首位应多加空格保持语句效果
- Linux下升级Python到3.5.2版本
原文出处:https://www.cnblogs.com/tssc/p/7762998.html 本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在20 ...
- chrome中Timeline的使用(译)
一.概括 Timeline面板包括以下四个部分: 控制面板.开始记录.停止记录.配置捕获信息: 概况.页面性能的整体概况: flame chart.直观展示cpu堆的情况.你能够看到三条虚线,蓝色的代 ...
- [Java初探08]__简单学习Java类和对象
前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...
- spring boot 与 thymeleaf (1): 国际化
在thymeleaf 里面有个消息表达式: #{...} , 可以借此来实现国际化. 在我使用这个功能的时候, 碰到了一个问题, 按照 JavaEE开发的颠覆者 Spring Boot实战 上面编码 ...
- wget命令【转】
http://man.linuxde.net/wget 语法: wget (选项)(参数) 选线 -a<日志文件>:在指定的日志文件中记录资料的执行过程: -A<后缀名>:指定 ...
- GitHub多人协作简明教程
本文面向已经了解/熟悉git基本命令但是并不熟悉如何使用GitHub进行多人协作开发项目的同学. 为了简单起见,这里假设只有两个开发人员,HuanianLi 和 DaxiangLi.他们在GitHub ...
- Golang 函数function
函数function Go函数不支持嵌套.重载和默认参数 但支持以下特性: 无需声明原型 不定长度变参 多返回值 命名返回值参数 匿名函数 闭包 定义函数使用关键字func,且左大括号不能另起一行 函 ...
- 第4章 Selenium2-java WebDriver API (一)
4.1 从定位元素开始 WebDriver提供了八种元素定位方: 在Java语言中对应的定位方法: ·id findElement(By.id()) ·name findEleme ...