一次SQL Server调优经历

颜九丶

颜九丶

2016-02-19 18:18

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的一次SQL Server调优经历,手机电脑控们准备好了吗?一起看过来吧!

  前段时间数据库健康检查发现SQL Server服务器的idle时间变少,IO还是比较空闲,估计是遇到了高CPU占用的语句了。

  介绍一下背景,我们公司负责运维N多的应有系统,负责提供良好的软、硬件环境,至于应用的开发质量,我们就无能为力了

  解决这个问题,我的思路是:

  找出CPU占用最大的语句。

  分析查询计划。

  优化。

  1、找出语句

  使用SQL Server自带的性能报表(不是报表服务),找出CPU占用最大的语句。如图1所示

图1 性能报表

  我选取了“性能-按总CPU时间排在前面的查询”,得出以下两张报表,如图2所示:

 

图2 性能-按总CPU时间排在前面的查询

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  在报表中不能直接把语句Copy出来,非得让我另存为Excel才能Copy语句;而且经常标示不了是语句属于哪个数据库,不爽 :( 。

  费了我九牛二虎之力才找出该条语句在哪个数据库执行,然后马上备份数据库,在另一个非生产数据库上面还原,创造实验环境。

  废话少说,我把语句Copy出来,顺便整理了一下格式。如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

select*
fromnetwork_listen
where
node_codein
  (
  selectdistinctnode_code
  fromview_Log_Network_circsByUnit
  wherestatus='1'
  ) 
or
node_code=
  (
  selecttop1nodeCode
  fromTransmissionUnit_LocalInfo
  ) 
and
node_code
  (
  selectparentNodeCode
  fromTransmissionUnit_RouterInfo
  wherenodeCode=
      (
      selecttop1nodeCode
      fromTransmissionUnit_LocalInfo
      )
  )

  2、分析语句

  执行计划如下:

  图太大了,将就着看吧 :( .

 

图3 查询计划全图

图4 查询计划1

 

图5 查询计划2

 

图6 查询计划3

  从整个查询计划来看,主要开销都花在了图5的那个部分——两个“聚集索引扫描”。

  查看一下这两个数“聚集索引扫描”,搞什么飞机呢?

展开更多 50%)
分享

猜你喜欢

一次SQL Server调优经历

编程语言 网络编程
一次SQL Server调优经历

一次SQL Server 2000修复实践

编程语言 网络编程
一次SQL Server 2000修复实践

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用Sql server一次插入多条数据

SQLServer
用Sql server一次插入多条数据

oracle调优之sql语句

编程语言 网络编程
oracle调优之sql语句

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

国外妈妈分享第一次产检经历

电脑网络
国外妈妈分享第一次产检经历

经历一次怀孕的过程女人一生才完整

怀孕
经历一次怀孕的过程女人一生才完整

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用css3制作纸张效果

用css3制作纸张效果

解决SQL Server不允许进行远程连接

解决SQL Server不允许进行远程连接
下拉加载更多内容 ↓