黄东旭解析 TiDB 的核心优势
954
2023-04-28
SQL性能优化前期准备-清除缓存、开启IO统计
如果需要进行SQl Server下的SQL性能优化,需要准备以下内容:
一、SQL查询分析器设置:
1、开启实际执行计划跟踪。
2、每次执行需优化SQL前,带上清除缓存的设置SQL。
平常在进行***性能优化时,为了确保真实还原性能问题,我们需要关闭***自身的执行计划及缓存。可以通过以下设置清除缓存。
DBCC DROPCLEANBUFFERS --清除缓冲区 DBCC FREEPROCCACHE --删除计划高速缓存中的元素
3、开启查询IO读取统计、查询时间统计。
SET STATISTICS TIME ON --执行时间 2SET STATISTICS IO ON --IO读取
开启设置后,执行SQL效果如下:
针对其中的每个图标节点,鼠标滑上去的时候,可以看到具体的执行信息。如下图:
可以通过查看谓词、对象、输出列表,分析问题点或者创建优化索引等。
二、针对*** Profile,SQL查询***进行分析。
1、打开方式:***查询分析器->工具,SQL Profile。打开方式截图:
2、连接&特殊设置:
打开后界面如下图:
其中DatabaseId、HostName可以在查询分析器中进行查询,脚本如下:
SELECT DB_ID() SELECT DB_NAME() SELECT HOST_ID() SELECT HOST_NAME()
实际上HostName就是你的本机计算机名。
重点关注其中的Duration、Writes、Reads、CPU,分析对象是TextData,及执行的语句。其中Duration为毫秒数,1000即为1秒。
应用总结&建议:
上面应用配合方式是:
1、先通过SQL查询***,跟踪出你所以执行的SQL,然后定位其中Duration比较的SQL 或者超过性能标准的SQl(比如页面访问3s、5s、8s)、报表30s等。
2、将问题SQL在查询分析器中进行分析,主要通过执行计划及IO统计定位耗时占比高及IO读取大的地方,然后逐步的调整SQL逻辑关系(比如添加业务条件过滤缩小集合,建立索引、调整like匹配等),优化后再重新进行跟踪看看是否有效果,最终达到SQL的优化目的。
写到这里,基本上我常用的SQL性能优化的方式就已经讲完了,希望给大家能提供帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。