一次sqlserver调优经历

一次sqlserver调优经历

ID:21381571

大小:55.50 KB

页数:3页

时间:2018-10-21

一次sqlserver调优经历_第1页
一次sqlserver调优经历_第2页
一次sqlserver调优经历_第3页
资源描述:

《一次sqlserver调优经历》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一次SQLServer调优经历>>教育资源库  前段时间数据库健康检查发现SQLServer服务器的idle时间变少,IO还是比较空闲,估计是遇到了高CPU占用的语句了。  介绍一下背景,我们公司负责运维N多的应有系统,负责提供良好的软、硬件环境,至于应用的开发质量,我们就无能为力了  解决这个问题,我的思路是:  找出CPU占用最大的语句。  分析查询计划。  优化。  1、找出语句  使用SQLServer自带的性能报表(不是报表服务),找出CPU占用最大的语句。如图1所示  图1性能报表  我选取了性能-按总CPU时间排在前面的查询,得出以下两张报表,如图2所示:  

2、图2性能-按总CPU时间排在前面的查询  在报表中不能直接把语句Copy出来,非得让我另存为Excel才能Copy语句;而且经常标示不了是语句属于哪个数据库,不爽:(。  费了我九牛二虎之力才找出该条语句在哪个数据库执行,然后马上备份数据库,在另一个非生产数据库上面还原,创造实验环境。  废话少说,我把语句Copy出来,顺便整理了一下格式。如下:select*fromvieTransmissionUnit_LocalInfo  ) andnode_code<>  (  selectparentNodeCode  fromTransmissionUnit_Rout

3、erInfo  TransmissionUnit_LocalInfo      )  )  2、分析语句  执行计划如下:  图太大了,将就着看吧:(.  图3查询计划全图  图4查询计划1  图5查询计划2  图6查询计划3  从整个查询计划来看,主要开销都花在了图5的那个部分两个聚集索引扫描。  查看一下这两个数聚集索引扫描,搞什么飞机呢?  奇怪了,查询语句里面没有Log_Ne)ASend_time    FROMLog_Nete=B.end_time  看着有点晕是吧,那么看看下图123下一页>>>>这篇文章来自..,。  3、优化  SQL写得好不好,咱不说,反正

4、我是不能改SQL的,而且应该可以判断出整个查询最耗时的地方就是用在搞这张试图了。  那就只能针对这个试图调优啦。仔细观察这个试图,实际上就涉及到一个表Log_Nete][varchar](100)NULL,  [server_name][varchar](100)NULL,  [start_time][datetime]NULL,  [end_time][datetime]NULL,  [status][varchar](30)NULL,CONSTRAINT[PK_LOG_ARYKEYCLUSTERED(  [log_id]ASC)ARY])ON[PRIMARY]  数据量

5、有489957条记录,不算太大。  根据3、经常与其他表进行连接的表,在连接字段上应该建立索引;  感觉上得在node_code和end_time这两字段上建立一个复合索引,大概定义如下:CREATEINDEX[idx__Log_NeteASC)  保险起见,我把需要调优的语句copy到一个文件里,然后打开数据库引擎优化顾问,设置好数据库,得出以下调优结果:CREATESTATISTICS[_dta_stat_559341057_6_2]ON[dbo].[Log_Nete],[node_code])CREATENONCLUSTEREDINDEX[_dta_index_Log

6、_Nete]ASC)PDB=OFF,IGNORE_DUP_KEY=OFF,DROP_EXISTING=OFF,ONLINE=OFF)ON[PRIMARY]  嗯,结果差不多,具体参数再说。  按照数据库引擎优化顾问给出的建议,建立STATISTICS和INDEX。  再看看优化后的执行计划  明显查询vieissionUnit_RouterInfo'。扫描计数0,逻辑读取2次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表'TransmissionUnit_LocalInfo'。扫描计数3,逻辑读取6次,物理读取0

7、次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表'issionUnit_RouterInfo'。扫描计数0,逻辑读取2次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表'TransmissionUnit_LocalInfo'。扫描计数3,逻辑读取6次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。表'work_listen'。扫描计数1,逻辑读取2次,物理读取0次,预读0次,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。