日期:2014-05-17  浏览次数:20504 次

【急】【求】求 mssql对数据库的一些性能监测
如题。比如占用内存。CPU等。。急




------解决方案--------------------
占内存这个太动态了。不好查,可以使用性能监视器中的一些计数器来查询。如果是其他查询,我倒有几个:
SQL code
/*
 正在运行中的语句,如果连接处于空闲状态。就不会被返回。
 */
 SELECT  p.session_id ,
         p.request_id ,
         p.start_time ,
         p.status ,
         p.command ,
         p.blocking_session_id ,
         p.wait_type ,
         p.wait_time ,
         p.wait_resource ,
         p.total_elapsed_time ,
         p.open_transaction_count ,
         p.transaction_isolation_level ,
         SUBSTRING(qt.text, p.statement_start_offset / 2,
                   ( CASE WHEN p.statement_end_offset = -1
                          THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
                          ELSE p.statement_end_offset
                     END - p.statement_start_offset ) / 2) AS 'SQL statement' ,
         p.statement_start_offset ,
         p.statement_end_offset ,
         batch = qt.text
 FROM    master.sys.dm_exec_requests p
         CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) AS qt
 WHERE   p.session_id > 50
 
 /*
 空闲连接上次运行的最后一条语句,缺点是返回整个批处理语句,而不是当前正在执行的子句。
 */
 DBCC INPUTBUFFER(spid)

------解决方案--------------------
探讨

sqlserver怎么调用性能计数器啊?

------解决方案--------------------
探讨
有一个资源调控器。怎么用啊

------解决方案--------------------
资源管控的 应用大概类似于:
一个SQLServer库,有一个生产应用系统访问,也有一个财务系统访问,每到月初,财务系统需要生成报表,会大量读数据生成报表,此时会影响生产应用。这时候可以功过资源管控器,把CPU等资源,假设分20%给财务系统,80%给生产系统。

比较有效的监控还是4类:DMVs、性能计数器、SQLServer的性能报表(2008才有)、活动和监视器。