请教数据库的"等待类型"
数据库并发比较多,查到主要等待事件如下:write log、PAGELATCH_SH、PAGELATCH_EX事件。当发生这些事件时,用windows自带的“性能监视器”检测到操作系统的物理IO满负荷,此时系统操作响应很慢(点击电脑短时间内没反应,而不出现这些等待事件时点击电脑是很快的),另外,此机器只运行数据库服务的(数据库专用)。
请问这些问题应该怎样处理优化解决呢?大伙们指教下吧,实在没招了
------解决方案--------------------write log、PAGELATCH_SH、PAGELATCH_EX
>>>
(1) 尝试着将 TempDB放到一个单独的磁盤上
(2) 将数据库的 Log文件跟数据文件分开放在不同的磁盤.
(3) 如果每天都有备份,那试着将恢复模式改成"Simple".
------解决方案--------------------
------解决方案--------------------....
------解决方案--------------------大方向往小方向走了:
1:如果是多个磁盘,先找到磁盘IO最多的.
2:再找到IO等待,占用最多的库以及库文件.
3:接着就细化到对象了,这个只有PROFILE去跟踪和统计.
........等等
这个东西,综合技能要求特别高,我也没有很好的具体的一些步骤代码.
如果是2005,有很多动态视图关于IO的可以查和统计,2000就不太好弄,就只能PROFILE.
------解决方案--------------------学习了!
------解决方案--------------------帮顶 学习
------解决方案--------------------关注。HOHO!
------解决方案--------------------除了上面几位的,看了:
sql2000\4CPU\4G内存\一个硬盘
估计你的磁盘会有瓶颈。
可以抓一下perfmon ,参考一下 微软的推荐值:
磁盘 PhysicalDisk Avg. Disk sec/Read 磁盘读操作平均延迟时间(秒) <0.008
PhysicalDisk Avg. Disk sec/Write 磁盘写操作平均延迟时间(秒) <0.008
------解决方案--------------------另外, 4 G 内存也有可能瓶颈, 是否打开 /3gb 了?
看看 perfmon 的Available Mbytes 系统总可用物理内存(MB)是否 <100
你的300分我要定了, 嘿嘿
------解决方案--------------------
------解决方案--------------------愿有更多的朋友参与进来讨论
------解决方案--------------------关注中...
------解决方案--------------------
------解决方案--------------------楼主
你再关注一下blocked ,waittime、WaitResources、status、phyiscal_io 这几个字段
当出现阻塞时,这几个字段的值是否在发生变化.
查到最终引起阻塞的那个SPID, 它到底是在等待什么资源.
这样才好下结论。
------解决方案--------------------你说的事件都是与磁盘I/O有关的
你只有一个硬盘
如果你不增加硬盘,唯一的办法是减少I/O操作
可能不前只有一个有效方法,把你的恢复模式改成简单,用个job调度好备份
------解决方案--------------------关注事态发展
------解决方案--------------------关注!
------解决方案--------------------你的这些等待是由事务和硬盘的瓶竟引起的.
一般情况下,对过程的优化有时会收到一些效果,不过,最重要的还是事务日志和TEMPDB上,只要将SQLSERVER的日志文件移到一个独立的磁盘中,把TEMPDB移到另一个独立的磁盘中,这种等待的时间将会减少很多.
一.移动TEMPDB方法.
--确定逻辑路径名。
use tempdb
go
sp_helpfile
go
use tempdb
go
sp_helpfile