[SQL SERVER][Performance]如何使用DTA快速分析并调校SQL提高查询性能
前几天被朋友询问在Oracle是否有相关免费软件可以分析并调校SQL,
但其实在Oracle10g之后版本中就有内建还不错的SQL Tunning Tool,
那SQL Server呢?幸运的在SQL2008版本中也内建不错的SQL Tunning Tool,
这篇就来大概介绍如何使用DTA快速分析并调校SQL并提高查询性能。
假设我们已经取得相关查询性能差的语法
CPU:2218ms , Logical reads:89481,QC:67.1701
使用DTA进行SQL Tunning
开启DTA。
一般页签
这文件内容包含该数据库中所有查询性能差的语法,
这里我选择文件(当然你也可以选择特定数据表)。
勾选该数据库中所有数据表。
微调选项页签
如果你有保存空间的压力,那可以设定空间最大上限。
选取建议都是离线(减少Server性能开销)。
以下类型可以依自行需求选取
数据库中要使用的实例设计结构:
这里我选取索引和检视表,同时勾选包含筛选的索引。
要采用的分割策略:
选取没有数据分割。
数据库中要保留的实例设计结构:
选取保留所有的PDS。
当微条选项都选取好后就可以开始执行分析,
DTA会依照你勾选类型给予相关建议并产出相关报表。
开时分析
DTA建议
可以看到估计改进性能高达76%(一般超过80%我都会直接套用),
同时DTA给予建立统计值和非丛集索引的建议,这里我就直接套用该建议。
复制建议语法并修改
建立统计值。
建立非丛集索引。
再次执行相同查询
CPU:1844ms , Logical reads:26935,QC:14.4347
结论:
SQL2008DTA工具个人认为参考价值算满高的(准确度相当不错),
但设计和建立正确的索引单单只靠工具是不够的,
DBA唯有了解各种索引类型特性、差异和限制,
并多多尝试建立不同索引类型,
唯有实际走过才能真正了解SQL Tunning并累积调校经验。
原文:大专栏 [SQL SERVER][Performance]如何使用DTA快速分析并调校SQL提高查询性能