SQL Server 动态管理视图(DMVs)
DMV在本地部署的SQL Server中需要VIEW SERVER STATE的权限
和事务有关的DMV
sys.dm_tran_active_transactions:返回与您的当前逻辑数据库的事务有关的信息。
sys.dm_tran_database_transactions:返回有关用户数据库级事务的信息。
sys.dm_tran_locks:返回有关当前处于活动状态的锁管理器资源的信息。向锁管理器发出的已授予锁或正等待授予锁的每个当前活动请求分别对应一行。结果集中的列大体分为两组:资源组和请求组。资源组说明正在进行锁请求的资源,请求组说明锁请求。
sys.dm_tran_session_transactions:返回关联事务和会话的相关信息。
和执行有关的DMV
sys.dm_exec_connections: 返回有关与 Microsoft SQL Azure 数据库建立的连接的信息。
sys.dm_exec_query_plan: 以 XML 格式返回计划句柄指定的批查询的显示计划。计划句柄指定的计划可以处于缓存或正在执行状态。
sys.dm_exec_query_stats: 返回缓存查询计划的聚合性能统计信息。缓存计划中的每个查询语句在该视图中对应一行,并且行的生存期与计划本身相关联。在从缓存删除计划时,也将从该视图中删除对应行。
sys.dm_exec_requests: 返回有关在 Microsoft SQL Azure 服务器内执行的每个请求的信息。
sys.dm_exec_sessions: 返回有关所有活动的用户连接和内部任务的信息。
sys.dm_exec_sql_text: 返回由指定的 sql_handle 标识的 SQL 批处理的文本。该表值函数将替换系统函数 fn_get_sql。
sys.dm_exec_text_query_plan: 为 Transact-SQL 批查询或批查询中的特定语句返回文本格式的显示计划。执行计划句柄指定的查询计划可处于缓存状态或正在执行状态。此表值函数与 sys.dm_exec_query_plan 类似,但存在以下差异:
• 查询计划的输出以文本格式返回。
• 查询计划的输出无大小限制。
和数据库相关的DMV
sys.dm_db_partition_stats:为当前数据库中每个分区返回页和行计数信息。
只有那些与范围内的服务器直接相关的信息会被暴露出来。在SQL Azure中,那些在SQL Server会返回实例级服务器信息的列将会返回空值。因此,如果你有一些用于SQL Server的自定义故障排除查询,你可以直接在SQL Azure中运行它们而不需要进行修改。
识别性能不佳的查询语句
SQL Server为所有执行的查询生成一个优化过的查询计划。这使得SQL Server的优化器可以在同样或者类似的查询执行的时候重用查询计划,从而在最短的时间内接收数据。一旦数据发生变化,数据列上的统计信息会使得查询计划变得过期和低效。为了获得应用程序的最佳性能以及一致的用户体验,识别并且调试这些语句非常的重要。之前列出的DMV可以直接帮助识别那些有问题的查询。
下面的是一些用于标识这些有问题的查询的基本查询语句:
过多的重新编译:
select top 25
sql_text.text,
sql_handle,
plan_generation_num,
execution_count,
dbid,
objectid
from
sys.dm_exec_query_stats a
cross apply sys.dm_exec_sql_text(sql_handle) as sql_text
where
plan_generation_num >1
order by plan_generation_num desc
不够高效的查询计划
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 50
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
I/O瓶颈
select top 25
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(total_physical_reads/execution_count) as avg_phys_reads,
Execution_count,
statement_start_offset as stmt_start_offset,
sql_handle,
plan_handle
from sys.dm_exec_query_stats
order by
(total_logical_reads + total_logical_writes) desc
转自:http://blogs.technet.com/b/sqlazurechina/archive/2011/08/18/sql-azure-optimization-debugging.aspx
SQL Server 动态管理视图(DMVs)的更多相关文章
- SQL Server 内存管理
windows memory: Memory: Cache Bytes 是系统的working set, 也就是系统使用的物理内存数目. 可以观察Windows用了多少物理内存. 1. System ...
- SQL Server 2005 的动态管理视图DMV和函数DMF
优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...
- 人人都是 DBA(IV)SQL Server 内存管理
SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...
- [转]动态管理视图和函数 (Transact-SQL)
动态管理视图和函数返回可用于监视服务器实例的运行状况.诊断故障以及优化性能的服务器状态信息. 重要提示 动态管理视图和函数返回特定于实现的内部状态数据. 在未来的 SQL Server 版本中,它们的 ...
- SQL Server主要系统视图说明
SELECT * FROM sys.all_columns --显示属于用户定义对象和系统对象的所有列的联合--https://docs.microsoft.com/zh-cn/sql/relatio ...
- SqlServer性能优化 手工性能收集动态管理视图(三)
动态管理视图: 具体的实例语句: --关于语句执行的基本情况 select * from sys.dm_exec_query_stats --动态管理函数 需要提供参数 select top 1 ...
- 使用SQL Server 2000索引视图提高性能
什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...
- sql server 警报管理,实时监听数据库动向,运筹帷幄之中
工作这么多年了,无论是身边的同学还是同事,发现只要搞程序员的都有一个通病---懒.懒到谁都不愿意加班,尤其是"义务"加班.即使大家都不愿意加班,但是很多时候项目赶着上线或者上线之后 ...
- (转)[SQL Server] 动态sql给变量赋值(或返回值给变量)
本文转载自:http://blog.csdn.net/xiaoxu0123/article/details/5684680 [SQL Server] 动态sql给变量赋值(或返回值给变量) decla ...
随机推荐
- CSS 3 中二维三维以及渐变过程简单总结 及效果(动图不好发)
一. 不动,区域内的变化(本质生产一张图片) /*渐变 1 长方形之渐变先定义长方形的宽高大小(好观察最好加边框) ...
- -webkit-filter属性用来干什么
这两天有看到国外网站纷纷介绍-webkit-filter,开始很迷惑,丫是想要学IE吗?今天看了下,和IE的滤镜没一毛关系啊,而且,效果很赞! 这些滤镜效果最初是用于SVG的,W3C引入到CSS中,然 ...
- 工作中nginx配置文件的一些参数记录
reset_timedout_connection on 告诉nginx关闭不响应的客户端连接.这将会释放那个客户端所占有的内存空间 tcp_nopush on 告诉nginx在一个数据包里发送许多个 ...
- 在Spark中使用Kryo序列化
spark序列化 对于优化<网络性能>极为重要,将RDD以序列化格式来保存减少内存占用. spark.serializer=org.apache.spark.serializer.Jav ...
- js闭包理解实例小结
Js闭包 闭包前要了解的知识 1. 函数作用域 (1).Js语言特殊之处在于函数内部可以直接读取全局变量 <script type="text/javascript"> ...
- Delphi开发的IP地址修改工具
用Delphi进行开发的,直接修改注册表,需重启电脑后才生效
- 百度 UEditor 简单安装调试和调用,网上其它的教程太官方了,不适合新手
对于新手来说,只要能实现功能即可,其它设置完全默认. 预览图: 1.首先 到官网下载,这个不多说.下载后解压到网站你想要的目录,我这里放到根目录下在你需要使用编辑器的地方,插入如下HTML代码: &l ...
- DTW
DTW主要是应用在孤立词识别的算法,用来识别一些特定的指令比较好用,这个算法是基于DP(动态规划)的算法基础上发展而来的.这里介绍语音识别就先介绍下语音识别的框架,首先我们要有一个比对的模版声音,然后 ...
- Python修饰器的函数式编程
Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都 ...
- IOS之表视图添加索引
我们要实现的效果如下. 1.修改ControlView.h,即添加变量dict,用于存储TabelView的数据源. #import <UIKit/UIKit.h> @interface ...