[原] JT SQL Server 性能调优札记之一

发现问题

今天服务器检查的时候发现SQL Server 2005服务器的CPU负载很高,而且一直居高不下,这是我当时在现场的截图:

 

服务器是一台4路服务器有4颗XEON 3GHz的CPU,8G的内容,SQL Server 2005是32位,打了SP2。

该服务器上跑了很多个业务系统的数据其中属于JT的数据库就有好几个,业务量还是挺大的。

排除是其他进程搞的鬼,确定是SQL Server 进程把服务器搞得这么忙。

 taskManager_CPU_Memory

定位问题

打开活动监视器按照CPU排序,得到如下信息,可见jt_user在jt_ComitOA上面的连接所作所为都是大动作啊。

image

接下来换一个工具,SQL Server Profiler 出场,调整跟踪的属性,调整为只是监视“SQL:Batch Completed”,而且将“DatabaseName”这个列选上,再调整一下列筛选器,如图:

image

这个列筛选器有个小Bug,输入完条件后最好按一下回车,否则有可能输入无效,OK开始我们的跟踪之旅。我这里简单地设置了一下DatabaseName,LoginName,CPU和Duration ,以便过滤掉一些无关紧要的值。

经过半个小时的收集,我得到了如下的跟踪信息:

image

我将部分语句Copy出来,顺便整理了一下格式。

exec oa_SWLIST 
'glzyf',
'(s.fileSerialNumber like ''%%'' or s.title like ''%%'' or s.keywords like ''%%'' or s.fileZi like ''%%'') and ',
' (  ft.userid=''glzyf'' ) '
exec oa_DBSX 'cwkfss',''
exec oa_FlowTurning 'jgstyb'
update FlowTurning set readStatus=1 where type='sw' and pkid='21712' and userid='cwkfss'

其中第一条语句的的占用率最严重,比其他的语句足足多了一个数量级。

Tag标签: Sql Server 2005
0
0
(请您对文章做出评价)
« 上一篇:[转]性能调优的步骤
» 下一篇:[原] JT SQL Server 性能调优札记之二
posted @ 2009-02-20 08:46 killkill 阅读(2484) 评论(4)  编辑 收藏 网摘 所属分类: SQL Server 实践

  回复  引用  查看    
#1楼2009-02-20 08:54 | RawMan      
很好!
  回复  引用    
#2楼2009-02-20 16:42 | chrissss[未注册用户]
like '%%' 号跟 like '%'有什么区别啊。。既然全查那还LIKE什么啊!
  回复  引用  查看    
#3楼[楼主]2009-02-20 17:25 | killkill      
@chrissss
语句写得好不好我不能干预的......

  回复  引用  查看    
#4楼2009-10-16 17:13 | Keep Walking      
@chrissss
这些都是拼凑的sql,一个百分号和两个百分号意义都一样,但是程序上方便写代码啊