[SQL SERVER][Performance]如何使用DTA快速分析并调校SQL提高查询性能

[SQL SERVER][Performance]如何使用DTA快速分析并调校SQL提高查询性能


前几天被朋友询问在Oracle是否有相关免费软件可以分析并调校SQL,

但其实在Oracle10g之后版本中就有内建还不错的SQL Tunning Tool,

那SQL Server呢?幸运的在SQL2008版本中也内建不错的SQL Tunning Tool,

这篇就来大概介绍如何使用DTA快速分析并调校SQL并提高查询性能。

假设我们已经取得相关查询性能差的语法

image

image

CPU:2218ms , Logical reads:89481,QC:67.1701

使用DTA进行SQL Tunning

image

开启DTA。

一般页签

image

这文件内容包含该数据库中所有查询性能差的语法,

这里我选择文件(当然你也可以选择特定数据表)。

image

勾选该数据库中所有数据表。

微调选项页签

image

如果你有保存空间的压力,那可以设定空间最大上限。

选取建议都是离线(减少Server性能开销)。

以下类型可以依自行需求选取

image

数据库中要使用的实例设计结构:

这里我选取索引和检视表,同时勾选包含筛选的索引。

要采用的分割策略:

选取没有数据分割。

数据库中要保留的实例设计结构:

选取保留所有的PDS。

当微条选项都选取好后就可以开始执行分析,

DTA会依照你勾选类型给予相关建议并产出相关报表。

开时分析

image

DTA建议

image

image

image

image

可以看到估计改进性能高达76%(一般超过80%我都会直接套用),

同时DTA给予建立统计值和非丛集索引的建议,这里我就直接套用该建议。

复制建议语法并修改

image

建立统计值。

image

建立非丛集索引。

再次执行相同查询

image

image

CPU:1844ms , Logical reads:26935,QC:14.4347

结论:

SQL2008DTA工具个人认为参考价值算满高的(准确度相当不错),

但设计和建立正确的索引单单只靠工具是不够的,

DBA唯有了解各种索引类型特性、差异和限制,

并多多尝试建立不同索引类型,

唯有实际走过才能真正了解SQL Tunning并累积调校经验。

原文:大专栏  [SQL SERVER][Performance]如何使用DTA快速分析并调校SQL提高查询性能


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11516414.html
SQL
今日推荐