SQL性能优化前期准备-清除缓存、开启IO统计

数据库 SQL Server
如果需要进行SQl Server下的SQL性能优化,需要准备以下内容:一、SQL查询分析器设置二、针对SQL Server Profile,SQL查询跟踪器进行分析。希望给大家能提供帮助。

 如果需要进行SQl Server下的SQL性能优化,需要准备以下内容:

一、SQL查询分析器设置:

1、开启实际执行计划跟踪。

2、每次执行需优化SQL前,带上清除缓存的设置SQL。

平常在进行SQL Server性能优化时,为了确保真实还原性能问题,我们需要关闭SQL Server自身的执行计划及缓存。可以通过以下设置清除缓存。

  1. DBCC DROPCLEANBUFFERS --清除缓冲区 
  2. DBCC FREEPROCCACHE --删除计划高速缓存中的元素 

3、开启查询IO读取统计、查询时间统计。

  1. SET STATISTICS TIME ON --执行时间 
  2. 2SET STATISTICS IO ON --IO读取 

开启设置后,执行SQL效果如下:

针对其中的每个图标节点,鼠标滑上去的时候,可以看到具体的执行信息。如下图:

可以通过查看谓词、对象、输出列表,分析问题点或者创建优化索引等。

当然你也可以换一种查看方式,点击右键选择显示执行计划XML。

还有一点特别说明的是:当你SQL很长逻辑关系很复杂的时候,执行计划会是一个很大的网状关系图,你会发现在右下角有一个加号的按钮,点击后一个缩略图。通过缩略图你可以很方便的定位执行节点,用起来还比较好用。

二、针对SQL Server Profile,SQL查询跟踪器进行分析。

1、打开方式:SQL Server查询分析器->工具,SQL Profile。打开方式截图:

2、连接&特殊设置:

打开后界面如下图:

设置正确连接信息后,点击连接,弹出如下界面。按照图中操作步骤进行设置。

其中DatabaseId、HostName可以在查询分析器中进行查询,脚本如下:

  1. SELECT DB_ID() 
  2. SELECT DB_NAME() 
  3. SELECT HOST_ID() 
  4. 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性能优化的方式就已经讲完了,希望给大家能提供帮助。

责任编辑:武晓燕 来源: 博客园
相关推荐

2009-12-14 15:42:46

Ruby Tk编程

2010-11-10 11:32:17

sql server计

2009-09-11 10:41:20

C# WinForm控

2009-12-18 16:49:07

组建宿舍网

2018-01-09 16:56:32

数据库OracleSQL优化

2015-11-10 16:55:00

性能IO子系统Linux

2009-09-03 17:49:59

C#浏览器开发

2019-03-14 15:38:19

ReactJavascript前端

2011-09-09 14:01:53

组网路由器交换机

2021-07-16 23:01:03

SQL索引性能

2018-04-19 09:02:14

SQL ServerSQL性能优化

2019-03-22 09:50:52

WebJavaScript前端

2020-06-11 13:03:04

性能优化缓存

2011-10-19 09:41:15

ASP.NET性能优化

2020-11-23 10:50:27

MySQLSQL数据库

2018-09-10 10:20:26

磁盘 IO网络 IO监控

2013-09-22 10:25:23

MySQLSQL性能优化

2023-11-15 16:35:31

SQL数据库

2021-07-26 18:23:23

SQL策略优化

2011-10-17 09:54:18

ASP.NET性能
点赞
收藏

51CTO技术栈公众号