问题:

一个程序查询经常超过20siis限制时间,排查问题后发现其中的一个存储过程时间会在15s左右

解决思路:

1:确认问题点

通过输出时间的方式查看存储过程中每个部分的执行时间,找到最耗时的三个过程

2:解决问题

发现查询过程中出现 with nolock ,对于查询过程没有用处,删除

先思考是否建立索引,发现有一个重要查询条件没有索引,建立索引后查询时间从8s秒降低到7秒

最后看到group by 会导致时间变长,加OPTION(hash group)减少group by 的影响


 

sql 提升查询效率 group by option hash groupsql 提升查询效率 group by option hash group
sql 提升查询效率 group by option hash groupsql 提升查询效率 group by option hash group

 

sql 提升查询效率 group by option hash group

sql 提升查询效率 group by option hash group

sql 提升查询效率 group by option hash group

sql 提升查询效率 group by option hash group

 


 结果:最终单个查询过程的时间从9S=》0S ,总查询过程从15S=》1S


原理:

还在学习sql 中关于 option (hash group )的内容,学会了在分享原理吧。

 

相关文章: