SqlServer性能优化 手工性能收集动态管理视图(三)
动态管理视图:

具体的实例语句:
--关于语句执行的基本情况
select * from sys.dm_exec_query_stats --动态管理函数 需要提供参数
select top 10 execution_count,total_worker_time,t.text,total_worker_time/execution_count
as avgcpu from sys.dm_exec_query_stats as s
cross apply sys.dm_exec_sql_text(s.sql_handle) as t
order by avgcpu desc --当前正在等待cpu执行的任务数
select runnable_tasks_count from sys.dm_os_schedulers where runnable_tasks_count>0 --内存方面的动态管理视图
select * from sys.dm_os_memory_cache_clock_hands where rounds_count>0
and removed_all_rounds_count>0
如果指定了 CROSS APPLY,在右侧的行集表达式返回一个空的行集为该行时不生成任何行,行的左侧的行集。
--评估哪些语句浪费SQL性能
SELECT * FROM sys.dm_exec_query_stats
-- 所需时间除以执行次数
select top 10 total_elapsed_time/execution_count as avgtotal,t.text from sys.dm_exec_query_stats as s
--关于语句的信息
cross apply sys.dm_exec_sql_text(s.sql_handle) as t
order by avgtotal desc
--评估数据库io 的问题
select * from sys.dm_io_pending_io_requests -- 挂起io的请求 视图
select * from sys.dm_io_virtual_file_stats((select DB_ID('AdventureWorks2014')),null) --函数 返回数据和日志文件的 I/O 统计信息 --说明文件是被挂起的
select s.file_id,r.io_pending from sys.dm_io_pending_io_requests as r inner join
sys.dm_io_virtual_file_stats((select DB_ID('AdventureWorks2014')),null) as s
on r.io_handle=s.file_handle
创建一个表:
create database HRDB
go
use HRDB
go
create table t1(c1 int,c2 int)
go
insert t1 values(1,1)
启动事物 不关闭 造成线程阻塞
begin tran
update t1 set c1=2 where c1=1
--并不结束
另一个用户去查询表
--语句被阻塞
select * from t1
查看系统的阻塞情况
--查看系统阻塞的情况
select * from master..sysprocesses
select distinct
'PID'=str(s.spid,4),
'BLOCKID'=str(s.blocked,4),
'Status' =
case s.status
when 'sleeping' then 'Running'
when 'runnalbe' then 'Complete'
when 'suspended' then 'Blocked'
end,t.text
from master..sysprocesses as s cross apply sys.dm_exec_sql_text(s.sql_handle) as t
where s.dbid=(select DB_ID('hrdb'))

把事物进行提交:
commit select * from t1
再次运行以上的语句结果如下:

SqlServer性能优化 手工性能收集动态管理视图(三)的更多相关文章
- [转]动态管理视图和函数 (Transact-SQL)
动态管理视图和函数返回可用于监视服务器实例的运行状况.诊断故障以及优化性能的服务器状态信息. 重要提示 动态管理视图和函数返回特定于实现的内部状态数据. 在未来的 SQL Server 版本中,它们的 ...
- SQL Server 2005 的动态管理视图DMV和函数DMF
优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...
- MYSQL之性能优化 ----MySQL性能优化必备25条
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...
- Android 性能优化 五 性能分析工具dumpsys的使用
Android提供的dumpsys工具能够用于查看感兴趣的系统服务信息与状态,手机连接电脑后能够直接命令行运行adb shell dumpsys 查看全部支持的Service可是这样输出的太多,能够通 ...
- 前端性能优化jQuery性能优化
一.使用合适的选择器 $("#id"); 1.使用id来定位DOM元素无疑是最佳提高性能的方式,因为jQuery底层将直接调用本地方法document.getElementById ...
- Java程序性能优化之性能概述
性能的基本概念 一).什么叫程序的性能? 程序运行所需的内存和时间. 二).性能的表现形式: 1).执行速度: 程序的反应是否迅速,响应时间是否足够短. 2).启动时间:程序从运行到可以处理正常业务所 ...
- Android异常与性能优化相关面试问题-内存管理面试问题详解
内存管理机制概述: 分配机制:操作系统会为每一个进程分配一个合理的内存大小,从而保证每一个进程能够正常的运行,不至于内存不够使用,或者某个进程占用过多的内存. 回收机制:在系统内存不足的时候,系统有一 ...
- Android性能优化:谈话Bitmap内存管理和优化
最近除了那些忙着项目开发的事情,目前正在准备我的论文.短的时间没有写博客,今晚难得想总结.只要有一点时间.因此,为了凑合用,行.唠叨罗嗦,直接进入正题. 从事Android自移动终端的发展,想必是常常 ...
- 性能优化 | JVM性能调优篇——来自阿里P7的经验总结
VM 调优概述: 性能定义: 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标. 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收 ...
随机推荐
- bat 自动编译运行
@echo off g++ %1 -Wall -Wextra --std=c++98 -O3 -DNDEBUG -D_NDEBUG -D_GLIBCXX_NO_ASSERT ^ -U_STLP_DEB ...
- jquery总结05-常用事件05-触发事件
触发事件 .trigger('click')触发浏览器事件,简写等于.click(),还同时支持自定义事件,并且可以传递参数 $('#elem').on('Aaron', function(event ...
- JavaScript的一点自我总结
学习前端不知不觉都两个月了,从零基础到现在,网页布局没多大问题,就是JS学的很差,有一段时间都怀疑自己是不是选错了.但自我调节后,心态发生了一些变化后,学习也没那么痛苦了.虽然做不到看代码像看初恋那样 ...
- Python生成字体
Python version 2.7 required, which was not found in the registry 参考:http://www.cnblogs.com/min0208 ...
- 【hdu5973】高精度威佐夫博弈
题意:输入a, b表示两堆石头数目,威佐夫博弈,问:先手胜负? a, b <= 1e100. 高精度.当a > b时, a = (a-b)*黄金分割比 时是先手败状态.因为a, b < ...
- STM32学习笔记(八) SPI总线(操作外部flash)
1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...
- 【ubuntu】系统设置打不开
如果系统设置打不开,请重新安装gnome-control-centersudo apt-get install gnome-control-center如果设置里只有很少的几个图标请重新安装unity ...
- [转]我为什么要学习python
我为什么要学习python 引言:学习python近两年,谈谈我对于python的一点小理解,也从一些方面谈谈自己微薄的想法,也就是我为什么学习python 这里我不讨论python的一些有用的库 ...
- MySQL学习笔记--基本操作
1.登录数据库 在命令行输入 "mysql -u username -p" 回车后输入密码 2.选择数据库 USE datebase name,选择要操作的数据库 3.显示所有数据 ...
- Java第一个程序
public class HelloWorld{ public static void main(String[] args){ System.out.println("七期项目二部&quo ...