技术开发 频道

一次SQL Server调优经历

  2、分析语句

  执行计划如下:

  图3 查询计划全图

 
 图4 查询计划1

 
 图5 查询计划2


图6 查询计划3

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

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


奇怪了,查询语句里面没有Log_Nwtwork_circs 这个表啊,再仔细分析一下这个执行计划,嫌疑最大的就是view_Log_Network_circsByUnit这个视图了。

  查看一下这个试图的定义:
  CREATE VIEW [dbo].[view_Log_Network_circsByUnit]

  AS

  SELECT B.*

  FROM (

  SELECT node_code, MAX(end_time) AS end_time

  FROM Log_Network_circs

  GROUP BY node_code

  ) A

  LEFT OUTER JOIN

  dbo.Log_Network_circs B

  ON

  A.node_code = B.node_code

  AND

  A.end_time = B.end_time

  看着有点晕是吧,那么看看下图

0
相关文章