SQLSERVER性能计数器的简单剖析
文章里介绍到SQLSERVER2012新的性能计数器“Batch Resp Statistics”其实我有一个问题:当我的电脑里有多个版本的SQLSERVER或者多个SQLSERVER实例,SQLSERVER是怎麽区分不同版本的不同计数器的呢?比如下面SQL脚本,在SQL2012里执行可以看到新的性能计数器Batch Resp Statistics的信息SELECT , "CPU Time:Total(ms)" , "CPU Time:Requests" , "Elapsed Time:Total(ms)" , "Elapsed Time:Requests"FROM ( SELECT , , FROM sys.dm_os_performance_counters --计数器视图 WHERE OBJECT_NAME LIKE '%Batch Resp Statistics%' ) os_pc PIVOT( AVG() FOR IN ( "CPU Time:Total(ms)", "CPU Time:Requests", "Elapsed Time:Total(ms)", "Elapsed Time:Requests" ) )AS Pvt;
而在SQL2005里执行上面的SQL语句则什么都查询不到,因为在SQL2005里没有这个计数器在性能监视器里添加“Batch Resp Statistics”性能计数器第一步:第二步:第三步:第四步:
MSDN关于sys.dm_os_performance_counters性能计数器视图的描述http://technet.microsoft.com/zh-cn/library/ms187743(SQL.90).aspx更新日期: 2007 年 9 月 15 日为服务器维护的每个性能计数器返回一行。 有关每个性能计数器的信息,请参阅使用 SQL Server 对象。
列名数据类型说明
object_namenchar(128)该计数器所属的类别。
counter_namenchar(128)计数器的名称。
instance_namenchar(128)计数器特定实例的名称。 通常包含数据库名称。
cntr_valuebigint计数器的当前值。
对于每秒计数器,该值是累积的。 速率值必须通过对离散时间间隔的值抽样来进行计算。 任何两个连续抽样值之间的差等于针对所使用时间间隔的速率。
http://i.technet.microsoft.com/areas/global/content/clear.gif注意:
cntr_typeintWindows 性能体系结构定义的计数器类型。 有关性能计数器类型的详细信息,请参阅 WMI Performance Counter Types(WMI 性能计数器类型)或 Windows Server 文档。
权限
需要对服务器具有 VIEW SERVER STATE 权限。
备注
如果 SQL Server 的安装实例无法显示 Windows 操作系统的性能计数器,请使用下面的 Transact-SQL 查询来确认性能计算器已禁用。1 SELECT COUNT (*) FROM sys.dm_os_performance_counters
如果返回值为 0 行,则性能计数器已禁用。 此时,您应查看安装日志并搜索错误 3409“请为此实例重新安装 sqlctr.ini,并确保实例登录帐户具有正确的注册表权限”,该错误表示性能计数器未启用。紧列在 3409 前的错误应指示导致性能计数器启用失败的根本原因。 有关安装日志文件的详细信息,请参阅How to: View SQL Server 2005 Setup Log Files。分析我的电脑里安装了SQL2005 、SQL2008 SQLEXPRESS版本 、SQL2012我安装各个SQLSERVER的路径SQL2005C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn SQL2008 SQLEXPRESS版本C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn SQL2012D:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Binn 上面三个路径都有一个sqlctr.ini文件C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlctr.ini SQL2005http://images.iyunv.com/OutliningIndicators/ContractedBlock.gif View Code
D:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Binn\sqlctr.ini SQL2012http://images.iyunv.com/OutliningIndicators/ContractedBlock.gif View Code
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlctr.ini SQL2008 SQLEXPRESS版本http://images.iyunv.com/OutliningIndicators/ContractedBlock.gif View Code
这些Windows 操作系统性能计数器是在安装SQLSERVER的时候添加并注册的,主要用来监视SQLSERVER的性能那么,当你的计算机里安装了SQL2005,SQL2008,SQL2012的时候,SQLSERVER怎麽识别他们各自的性能计数器呢?我的想法如下图如果电脑上有同一版本的SQLSERVER的多个实例呢?我的想法如下图
大家可以比较一下各个sqlctr.ini文件的异同
另一个perf-MSSQLSERVERsqlctr.ini大家以为这样就完结了??其实我前晚发现在下面的路径还有perf-MSSQLSERVERsqlctr.ini文件文章地址:C:\Windows\inf\MSSQLServer路径下的SQLSERVER配置文件暂时还不知道perf-MSSQLSERVERsqlctr.ini文件有什么用?
如果男人的好是要你委屈自己处处讨好,才能塑造,才能得到,你又何可自寻苦恼. 给你最大的报复,就是活的比你幸福 值得学习一下 向日葵,赖着太阳而生存。 我难过的是你在问我难过什么我害怕的是把我害怕的事情说出来 乀她骗她說 自己狠满足
页:
[1]