• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQL Server 2005性能排错(5)_sqlserver

sqlserver 搞代码 3年前 (2018-06-17) 109次浏览 已收录 0个评论

  使用SQL waits阻塞对整体性能的影响

  SQL Server 2000提供了76种等待类型来提供等待报告。SQL Server 2005提供了多余100个等待类型来跟踪应用程序性能。任何时间1个用户连接在等待时,SQL Server会累加等待时间。例如应用程序请求资源例如I/O,锁或内存,可以等待资源直到可用。这些等待信息可以跨所有连接将被汇总和分类,所以性能配置可以从给定的负载获得。因此,SQL等待类型从应用程序负载或用户观点识别和分类用户(或线程)等待。

  这个查询列出了在SQL Server中前10位的等待。这些等待时累积的,但是你可以使用DBCC SQLPERF ([sys.dm_os_wait_stats], clear)重置这个计数器。

select top 10 *
from sys.dm_os_wait_stats
order by wait_time_ms desc

  下列是输出,要注意几个关键点:

  ◆一些等待是正常的例如后台线程的等待,例如lazy writer组件。

  ◆一些会话为获取共享锁等待很长时间

  ◆信号等待是在一个工作线程获取对资源访问到它被拿到CPU上调度执行这段时间。长时间的信号等待也许意味着很高的CPU争用。

wait_type   waiting_tasks_count wait_time_ms   max_wait_time_ms signal_wait_time_ms 
------------------ -------------------- -------------------- -------------------- -------
LAZYWRITER_SLEEP   415088        415048437      1812         156
SQLTRACE_BUFFER_FLUSH 103762        415044000      4000         0
LCK_M_S        6          25016812       23240921       0
WRITELOG       7413         86843        187         406
LOGMGR_RESERVE_APPEND 82          82000        1000         0
SLEEP_BPOOL_FLUSH   4948         28687        31          15
LCK_M_X        1          20000        20000        0
PAGEIOLATCH_SH    871         11718        140         15
PAGEIOLATCH_UP    755         9484         187         0
IO_COMPLETION     636         7031         203         0

  为了分析等待状态,你需要获取数据,用于以后分析。附录B提供了2个示例的存储过程。

欢迎大家阅读《SQL Server 2005性能排错(5)_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址