十大监视SQL Server性能的计数器
作为DBA,每个人都会用一系列计数器来监视SQLSERVER的运行环境,使用计数器,既可以衡量当前的数据库的性能,还可以和以前的性能进行对比。我们也可以一直以快速和简单的方法把计数器做了一张图表来识别数据库的性能的变化情况,来分析数据库性能的趋势。
下面是我常用的前10位的SQL Server计数器,严格的来说,它们没有特定的顺序。对于每一个计数器,我将尽可能所描述的是什么,在某些情况下,我也会说说这些计数器的理想值。这样可以参考用于衡量自己的数据库的指标情况。
1. SQLServer: Buffer Manager: Buffer cache hit ratio (SqlServer缓冲管理器:缓冲区高速缓存命中率 )
高速缓存命中率计数器,表示SQL Server接受命令查询所需的数据页恰好在高速缓存中的概率,如果在高速缓存中查找不到,则数据页要重新到磁盘或者其它地方获取。这个数值越高,表示SQL Server能够从缓存中获得的数据概率越高,而不是再从磁盘读取。这个数值理论上是越高越好,接近到100.有了这100,100%的时间在SQL Server的内存中找到了需要的数据页,那么性能一直很高。如是是一个很低的数值可能表明内存方面有问题,最有可能是内存不足。
2. SQLServer: Buffer Manager: Page life expectancy (SqlServer缓冲管理器:页寿命)
页寿命表示页在缓存中存放的时间。页面停留的时间越长在内存中,那么下一次查询时,如果所需的页面还在缓存中,SQL Server将不再需要从磁盘读取。页寿命根据不同的服务器的基值不同,和内存大小有一定的关系,我们应该观察这个计数器,以确定数据库环境中正常基线是什么。有人统计了一下,低于300(或5分钟),说明我们的服务器内存不足。
3. SQLServer: SQL Statistics: Batch Requests/Sec (SqlServer统计:批请求/秒)
批请求/秒是指SQL Server是每秒接收批处理的数量。这个计数器是可以查看我们的服务器处理速度。数字越大,表明我们的数据库处理查询的吞吐量越大。像许多计数器一样,没有一个单一的数字,可以说明服务器是太忙了。如今的服务器越来越强大,因此可以一刻不停的处理更多批次的请求。随着时间的推移,应该收集这个计数器,以确定我们的服务器环境基准数值是什么。
4. SQLServer: SQL Statistics: SQL Compilations/Sec (SqlServer统计:编译 /秒)
编译/秒 是指SQL Server每秒编译执行计划的次数。编译一个执行计划是资源密集型操作,耗时比较长且申请的资源比较多。汇编/秒应该和批请求/秒同时观察,当两者同时发生时,以获取是否有并发症,对服务器有伤害。要做到这一点,可以使用 请示数/编译数=?来保持一个稳定的数值。理想的情况下,可以为每10批次一个编译的要求。
5. SQLServer: SQL Statistics: SQL Re-Compilations/Sec(SqlServer的:SQL统计:重编译/秒 )
有时因为一些重要的事件发生时,导致执行计划失效,SQL Server将重新编译它。该重编译/秒表示每秒钟重新编译执行计划的次数,和编译一样,都是代价高昂的操作,所以应尽量减少重新编译次数。理想情况下我们要保留这个计数器小于编译/秒(上面第4项)的10% .
6. SQLServer: General Statistics: User Connections(SqlServer的:一般统计:用户连接 )
用户连接计数器是指同一时刻连接到服务器的用户的数量。我们需要观察这个基线用户连接数,不同时间的用户数量是不同的,且有个高低区间。如果此计数器的值下降,并在系统上的负荷是相同的,那么可能有一个瓶颈,导致我们的服务器不能来处理的正常负荷,这个需要检查了。当然也要注意计数器的值下降也可能是因为连接的确少了的原因。
7. SQLServer: Locks: Lock Waits / Sec: _Total(SqlServer的:锁:锁等待/秒:所有 )
为了使SQL Server来管理系统上的并发用户时,SQL Server需要经常锁定资源,有时长有时短暂。锁等待/秒是指每秒针系统等待恰好所申请的资源被锁定的次数。理想情况下我们不希望任何要求等待锁,因此,要保持这个计数器为零或接近零。
8. SQLServer: Access Methods: Page Splits / Sec(SqlServer的:访问方法:页拆分/秒 )
这个计数器表示:当插入、更新数据时,由于原来的页不够存放了,需要进行分页动作,那么每秒种进行分析的次数,就是该指标,因为拆分时执行性能昂贵,除了IO操作外,还导致表碎片越来越多,表性能低下。因此,减少页拆分将有利于系统高效执行,需要进行合理的设计。理想的情况下,这个计数器应小于批请求/秒(上面第三项)的20% .
9. SQLServer: General Statistic: Processes Block(SqlServer的:一般统计:进程阻塞)
进程阻塞计数器是指某一时刻进程阻塞的的个数。当一个进程因为申请的资源得不到释放时,这个进程被阻塞了,而其它依赖于同一个资源的进程都不能向前推进,最后导致阻塞的进程越来越多,要解决这个问题唯一的办法是直到其资源释放。理想情况下我们不希望看到任何阻塞的进程,当进程被阻止时应该深入调查。
10. SQLServer: Buffer Manager: Checkpoint Pages/Sec(SqlServer的:缓冲管理器:检查点页/秒 )
检查点页/秒表示每秒写入到磁盘的确认检查的页数。我们应该根据自己的数据库生成一个基准曲线。一旦建立了基准曲线,我们可以看看它是否还在上升。如果此计数器一直在上升,这有可能是因为内存有问题,导致磁盘和内存的页面交换在频繁的进行。
十大监视SQL Server性能的计数器的更多相关文章
- SQL Server 性能优化详解
		
故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户, ...
 - (转)SQLServer_十步优化SQL Server中的数据访问四
		
原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第八步:使用SQL事件探查器和性能监控工具有效地诊断性能问题 在SQL ...
 - 如何使用 DBCC MEMORYSTATUS 命令来监视 SQL Server 2005 中的内存使用情况
		
https://technet.microsoft.com/en-us/solutionaccelerators/dd537566.aspx 注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完 ...
 - SQL Server Profiler监控SQL Server性能
		
全面掌握SQL Server Profiler 1. 原理与相关概念介绍 SQL Server Profiler,大家已经非常熟悉.常常在性能优化中使用,本文档详细介绍SQL Server ...
 - SQL Server 性能优化之——系统化方法提高性能
		
SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...
 - 影响Sql server性能的因素
		
目前本人在看<SQL Server性能调优实战> ,以下内容是本人看书笔记 数据库性能取决于各方面综合因素: 硬件,操作系统,软件 硬件:内存,CPU,磁盘 当服务器的物理内存不足时,会产 ...
 - sql server 性能调优之 资源等待PAGELATCH
		
一.概述 在前几章介绍过 sql server 性能调优资源等待之PAGEIOLATCH,PAGEIOLATCH是出现在sql server要和磁盘作交互的时候,所以加个IO两个字.这次来介绍PAGE ...
 - sql server 性能调优之 资源等待 LCk
		
一. 概述 这次介绍实例级别资源等待LCK类型锁的等待时间,关于LCK锁的介绍可参考 “sql server 锁与事务拨云见日”.下面还是使用sys.dm_os_wait_stats 来查看,并找出 ...
 - sql server 性能调优之 CPU消耗最大资源分析1 (自sqlserver服务启动以后)
		
一. 概述 上次在介绍性能调优中讲到了I/O的开销查看及维护,这次介绍CPU的开销及维护, 在调优方面是可以从多个维度去发现问题如I/O,CPU, 内存,锁等,不管从哪个维度去解决,都能达到调优的效 ...
 
随机推荐
- Encrypt your home directory
			
w
 - 一篇搞定SQLAlchemy--关系对象映射
			
要使用SQLAlchemy,必须先下载这个模块 pip3 install sqlalchemy 或 pycharm File--> Settings-->project...-->P ...
 - Linux Debian 如何部署 Qt?
			
Linux Debian 如何部署 Qt? 在这里以 HelloWorld 为例 目录结构如下: . ├── HelloWorld ├── HelloWorld.sh ├── imageformats ...
 - [note]克鲁斯卡尔重构树
			
克鲁斯卡尔重构树 又叫并查集重构树 大概在NOI2018之前还是黑科技 现在?烂大街了 主要是针对图上的对边有限制的一类问题 比如每次询问一个点u不能经过边权大于w的边能走到的第k大点权是多少 也就是 ...
 - 让VisualStudio Profiler捕捉执行的sql语句
			
启动Profiler之前设置一下Targets的属性就行,图中有说明.
 - poj 1012 & hdu 1443 Joseph(约瑟夫环变形)
			
题目链接: POJ 1012: id=1012">http://poj.org/problem?id=1012 HDU 1443: pid=1443">http:// ...
 - 创建spring boot 项目所遇到的问题
			
1.添加完MySQL和jdbc约束后,在配置文件内spring.datasource.driver-class-name=com.mysql.jdbc.Driver 报错,显示找不到驱动包,原因是: ...
 - 20170520 BADI增强学习
			
一.要求:Tcode:FF_5 导入数据运行时,产生财务凭证之前修改某些字段值.Exmp:FEBRE-VWEZWBKPF-XBLNRFEBEP-CHECTBSEG-ZUONR there is a b ...
 - SQL实现分页存储过程
			
SQL分页存储过程的编写: --获得分页的DATASET资源 ALTER PROC sp_GetSource( @PageSize INT, --每页显示条数 @PageIndex INT, --页码 ...
 - VM and Docker Container
			
https://www.zhihu.com/question/48174633 在开始讨论前,先抛出一些问题,可先别急着查看答案,讨论的过程可以让答案更有趣,问题如下: Docker 容器有自己的ke ...