资源描述:
《jt sql server 性能调优札记之二--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、JTSQLServer性能调优札记之二>> 分析问题 将数据库备份到一台测试的服务器上,查看一下数据库的数据文件和日志文件情况,发现日志文件比较大,貌似这也是一个SQLServer存在的问题,具体原因不清楚,但是解决方法已经非常成熟,该问题暂时不影响使用,先不管它。上一篇定位了问题,找出了多条TopSQL,其中这条最过分。 execoa_Sberlike''%%''ors.titlelike''%%''ors.keyployees([id][int]IDENTITY(1,1)NOT
2、NULL,parentIdint,pkIdint,statusint,titlenvarchar(1500),eOrgnvarchar(100),fileDateDateTime,fileNamenvarchar(4000),filePathnvarchar(4000),readStatusnvarchar(10),optionStatusnvarchar(10),depIdnvarchar(20),urgencyLevelnvarchar(10));setSQL1='insertinto#employees(parentId,pkId,st
3、atus,title,eOrg,fileDate,fileName,filePath,readStatus,optionStatus,depId,urgencyLevel)selectdistincts.parentId,s.pkId,0,s.title,s.eOrg,s.fileDate, s.fileName,s.filePath,ft.readStatus,0,s.remark3,caseShoue,filePath,readStatus,optionStatus,depId,urgencyLevel)selectdistincts.pare
4、ntId,s.pkId,1,s.title,s.eOrg,s.fileDate, s.fileName,s.filePath,1,l.optionstatus,s.remark3,urgencyLevel fromshouid)fromlogid=s.pkidanduid='''+userID+'''andtypeid=''shou#employeesdeletefrom#employees 从结果来看该存储过程其实就是执行了两条动态SQL,分别存在SQL1和SQL212下一页>>
5、>>这篇文章来自..,。。我稍微修改了一下存储过程,加入了一些调试信息,打开统计器。 SETSTATISTICSIOon;SETSTATISTICSTIMEon; 执行存储过程,这里由于信息量比较大,我就不贴了,上一张图吧。 可见SQL1的语句耗时并不多,SQL2资源占用是非常厉害的。其中Log表扫描530次,这个表的数据量有257417条,说大不大,说小也不小了,而且还得扫描530次,唉,啥也不说了,而shouployees。 selectdistincts.parentId,s.pkId,1,s.title,s.eOrg,s.fileDa
6、te, s.fileName,s.filePath,1,l.optionstatus,s.remark3,urgencyLevel fromshouberlike'%%'ors.titlelike'%%' ors.keyid)fromlogid=s.pkidanduid='glzyf'andtypeid='shouS的语句调优,绝大部分的情况下都是将执行计划中的扫描转变为查找。下一篇讲解如何将扫描变为查找。上一页12>>>>这篇文章来自..,。