SQL Server多次执行重建索引带来的执行计划优化

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

SQL Server多次执行重建索引带来的执行计划优化

执行统计更新,采用下面两种方式,保证表的统计信息和空间是最优的。

1:UPDATE STATISTICS T_BD_MATERIAL_L WITH FULLSCAN,ALL,MAXDOP=4

2:DBCC DBREINDEX(T_BD_MATERIAL_L)

执行SQL语句

花费了1475ms。

执行计划

使用了索引,但是涉及11W数据的循环。从语句来看执行计划也是合理的,将满足条件的数据关联取出后,最后再进行筛选。

 

再执行一次DBCC DBREINDEX(T_BD_MATERIAL_L)

注意:update语句的方式不会有下面测试的效果。

发现执行计划发生了细微变化,扫描T_BD_MATERIAL_L表的次数减少到400,也就是最后返回行的数量。

只需要919ms

发现数据库引擎对计划做了优化,将原来的关联超过11W,调整为最后需要返回的400行数据。大量减少了循环的开销,以及排序成本,从而提升了将近50%的性能。

 

在某些情况下,发现SQL 语句慢,并且统计更新以及是最优化的情况下,可以考虑再次执行重建索引语句,看看性能是否能够得到改善。

 

注:本次测试,只代表上述类型的SQL。

测试环境SQL SERVER2014


SQL Server多次执行重建索引带来的执行计划优化

执行统计更新,采用下面两种方式,保证表的统计信息和空间是最优的。1:UPDATE STATISTICS T_BD_MATERIAL_L WITH FULLSCAN,ALL,MAXDOP=...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息