`

如何监控SQL Server (2005/2008) 的运行状况

阅读更多

如何监控SQL Server (2005/2008) 的运行状况

 

摘自:http://www.soaspx.com/dotnet/sql/mssql/sql2005/sqlservr2005_20090831_224.html

 

Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。

常规服务器动态管理对象包括:

dm_db_*:数据库和数据库对象

dm_exec_*:执行用户代码和关联的连接

dm_os_*:内存、锁定和时间安排

dm_tran_*:事务和隔离

dm_io_*:网络和磁盘的输入/输出

此部分介绍为监控 SQL Server 运行状况而针对这些动态管理视图和函数运行的一些常用查询。


摘录部分精彩SQL如下:

下面的查询显示 CPU 平均占用率最高的前 50 个 SQL 语句。

 SELECT TOP 50  
total_worker_time/execution_count AS [Avg CPU Time],  
(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *  
FROM sys.dm_exec_query_stats   
ORDER BY [Avg CPU Time] DESC 
SELECT TOP 50
total_worker_time/execution_count AS [Avg CPU Time],
(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC

下面的查询显示一些可能占用大量 CPU 使用率的运算符(例如 ‘%Hash Match%’、‘%Sort%’)以找出可疑对象。
 
select   *  
from    
      sys.dm_exec_cached_plans  
       cross  apply sys.dm_exec_query_plan(plan_handle)  
where    
       cast (query_plan  as   nvarchar ( max ))  like   ' %Sort% ' 
       or   cast (query_plan  as   nvarchar ( max ))  like   ' %Hash Match% ' 
select   *
from 
      sys.dm_exec_cached_plans
       cross  apply sys.dm_exec_query_plan(plan_handle)
where 
       cast (query_plan  as   nvarchar ( max ))  like   ' %Sort% '
       or   cast (query_plan  as   nvarchar ( max ))  like   ' %Hash Match% '

运行下面的 DMV 查询以查看 CPU、计划程序内存和缓冲池信息。

 


select    
cpu_count,  
hyperthread_ratio,  
scheduler_count,  
physical_memory_in_bytes  /   1024   /   1024   as  physical_memory_mb,  
virtual_memory_in_bytes  /   1024   /   1024   as  virtual_memory_mb,  
bpool_committed  *   8   /   1024   as  bpool_committed_mb,  
bpool_commit_target  *   8   /   1024   as  bpool_target_mb,  
bpool_visible  *   8   /   1024   as  bpool_visible_mb  
from  sys.dm_os_sys_info 
select 
cpu_count,
hyperthread_ratio,
scheduler_count,
physical_memory_in_bytes  /   1024   /   1024   as  physical_memory_mb,
virtual_memory_in_bytes  /   1024   /   1024   as  virtual_memory_mb,
bpool_committed  *   8   /   1024   as  bpool_committed_mb,
bpool_commit_target  *   8   /   1024   as  bpool_target_mb,
bpool_visible  *   8   /   1024   as  bpool_visible_mb
from  sys.dm_os_sys_info

下面的示例查询显示已重新编译的前 25 个存储过程。plan_generation_num 指示该查询已重新编译的次数。

 


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   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

下面的 DMV 查询可用于查找哪些批处理/请求生成的 I/O 最多。如下所示的 DMV 查询可用于查找可生成最多 I/O 的前五个请求。调整这些查询将提高系统性能。
 
select   top   5    
    (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

 

 

分享到:
评论

相关推荐

    SQL SERVER 2005/2008 Express Profiler

    总的来说,SQL Server 2005/2008 Express Profiler 是一个强大的工具,通过它,你可以有效地监控和优化SQL Server 2008 Express数据库的性能,确保系统稳定运行并解决可能出现的问题。安装文件"SqlExpressProfiler....

    监控 SQL Server 的运行状况

    监控 SQL Server 的运行状况 监控 SQL Server 的运行状况是数据库管理员的重要任务之一。Microsoft SQL Server 2005 提供了一些工具来监控数据库,包括动态管理视图(DMV)和动态管理函数(DMF)。这些工具返回的...

    SQL Server 2005 启用远程连接

    在默认情况下,SQL Server 2005 的配置是只允许本地连接,为了实现远程访问,需要进行一系列的设置。 **步骤1:** 打开SQL Server外围应用配置器。可以通过开始菜单找到该工具:开始 → 程序 → Microsoft SQL ...

    SQL Server 2008内存及IO性能监控

    在SQL Server 2008中,内存管理和IO性能监控是数据库管理员进行系统优化和问题排查的关键环节。本文将深入探讨这两个方面的监控方法,帮助你更好地理解和管理SQL Server的资源利用。 一、内存管理 1. **内存架构**...

    sqlserver 2005和2008官网下载地址--sqlserver2008安装详解--以及错误及解决办法

    SQL Server 2005 和 2008 官方下载地址、安装详解及错误解决 SQL Server 是一种关系型数据库管理系统,广泛应用于商业应用和企业级应用中。本文将详细介绍 SQL Server 2005 和 2008 的官方下载地址,以及在 Windows...

    卸载sql server 2005

    5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT 6. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerADHelper 请注意,如果你已经使用卸载工具,这些键可能已经被自动...

    监控_SQL_Server_2005_的运行状况

    ### 监控 SQL Server 2005 的运行状况 #### 概述 在现代企业的IT基础设施中,数据库系统的稳定性与性能至关重要。SQL Server 2005作为一款广泛使用的数据库管理系统,在确保其高效稳定运行方面,需要进行定期且...

    sql server 2005 sp4补丁包

    SQL Server 2005 SP4(Service Pack 4...总的来说,SQL Server 2005 SP4是提高系统安全、性能和兼容性的关键更新,对于还在使用SQL Server 2005的企业来说,及时安装SP4对于保障业务的正常运行和数据安全具有重要意义。

    LoadRunner对数据库的监控指标(sqlserver/oracle/db2)

    **注释**: DB2的监控指标主要来自于其运行状况指示器,以下是部分关键指标: 1. **缓冲池命中率 (Buffer Pool Hit Ratio)** - **描述**: 表示从缓冲池中获取数据的比例。 - **重要性**: 极高 - **参考值**: 最佳...

    SQL SERVER2005卸载工具_SQLSERVER2005_

    在某些情况下,用户可能需要卸载SQL Server 2005,例如升级到更高版本,或者由于系统资源紧张需要释放空间。下面我们将详细介绍SQL Server 2005的卸载过程及相关知识点。 首先,我们来理解SQL Server 2005的组件...

    SQL2005精简版一键安装 sql server2005一键安装

    总的来说,"SQL2005精简版一键安装"是为了简化SQL Server 2005 Express Edition的安装流程,让用户能够在无须深入了解技术细节的情况下快速启动并运行数据库服务。这不仅节约了时间,还降低了出错的可能性,提升了...

    通过SQL 2005 系统表监控 SQL Server 的运行状况

    ### 通过SQL 2005系统表监控SQL Server的运行状况 在SQL Server 2005中,为了确保数据库系统的稳定性和高效性,管理员需要密切关注系统的运行状况,并及时发现潜在的问题。其中一种有效的方法就是利用SQL Server ...

    Sql2008ExpressProfiler

    总之,SQL Server 2008 Express Profiler是数据库管理和优化不可或缺的工具,通过它我们可以深入理解数据库的运行情况,找出性能问题并进行改进。如果你在使用过程中遇到任何问题,可以通过邮件`zhangyuwu2931670@...

    安装 sql server 2005 时 提示 “SQL server服务无法启动”解决方案

    - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT` - `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerADHelper` 3. **清理第三方软件痕迹**:确保已经卸载类似 360 ...

    Microsoft SQL Server 2005 JDBC Driver

    对于SQL Server 2005,通常使用的URL格式是 `jdbc:sqlserver://<服务器>:<端口>;databaseName=<数据库名>`,例如:`jdbc:sqlserver://localhost:1433;databaseName=mydb`。驱动全限定名是 `...

    SQL server 2005 Express与速达的连接问题

    1. **网络配置**:确保速达软件所在的计算机能够通过网络访问到运行SQL Server 2005 Express的计算机。 2. **服务状态**:检查SQL Server 2005 Express服务是否正常启动。 3. **连接协议**:确认SQL Server 2005 ...

    监控SQL Server 2005

    总之,监控SQL Server 2005是为了确保数据库系统的高效运行,这涉及到对系统资源的全面监控,以及对性能问题的深入分析和解决。通过合理使用各种监控工具和性能计数器,可以有效地识别和解决性能问题,从而提高整个...

    监控SQL_Server_2005状态

    SQL Server 2005 提供多种工具来帮助管理员监控数据库的运行情况,以便进行性能优化、错误检测和故障排除。 首先,**活动监视器** 是 SQL Server 2005 自带的一个强大工具,它可以显示数据库引擎的实时状态,包括...

Global site tag (gtag.js) - Google Analytics