在一切开始以前,先看下微软的建议:在系统的总体性能优化里面, TSQL优化优先级并非最高的。sql
本文包括四部分:性能优化
SET 函数主要是为了显示sql执行时的查询计划,CPU、硬盘使用状况。函数
1. SET STATISTICS TIME ON:当 SET STATISTICS TIME 为 ON 时,会显示语句的时间统计信息。为 OFF 时,不显示时间统计信息。性能
SET STATISTICS TIME ON select top 10000 * from Measure_heat select top 10000 * from Measure_heat order by id desc
显示结果:优化
2. SET STATISTICS IO:生成的磁盘活动量的信息。网站
SET STATISTICS IO ON select top 10000 * from Measure_heat select top 10000 * from Measure_heat order by id desc
显示结果:spa
对于逻辑读取、物理读取,lob读取等概念,微软的解释是:code
对于lob的概念,我在网上找了好久没有找到,最后在msdn官方的Libiary里发现,再一次证实查资料还得去官方网站啊。blog
3. SET SHOWPLAN_ALL ON。 若是要显示语句在查询时执行计划等,能够使用该语句显示。执行计划是咱们进行索引优化的有力依据。索引
SET SHOWPLAN_ALL On select top 10000 * from Measure_heat
显示结果:
上图的结果比较难看明白,咱们能够用图形可视化的方式来查看,显示更直观一些。
4. 还有一些与性能分析有关的SET函数,如
SET STATISTICS XML --XML格式输出查询计划 SET STATISTICS PROFILE ON --执行的各个查询都返回其常规结果集
好比profile 设为on时,结果同SET SHOWPLAN_ALL ON的结果很像,多了rows和Executes两列,分别指个运算符生成的实际行数和运算符执行的次数: