性能调优:理解Set Statistics Time输出
2015-05-29 09:05
176 查看
在性能调优:理解Set Statistics IO输出我们讨论了Set Statistics IO,还有如何帮助我们进行性能调优。这篇文章会讨论下Set Statistics Time,它会告诉我们执行一个查询需要的时间。
我们用一个例子来开始。
![](http://images0.cnblogs.com/blog2015/750348/201505/281947033913587.png)
在例子里有2个SELECT语句。第1个在清空缓存后执行。我们来看看输出。
我们用一个例子来开始。
USE AdventureWorks2008r2 GO DBCC dropcleanbuffers DBCC freeproccache GO SET STATISTICS TIME ON GO SELECT * FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID=SOD.SalesOrderID WHERE ProductID BETWEEN 700 AND 800 GO SELECT * FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID=SOD.SalesOrderID WHERE ProductID BETWEEN 700 AND 800
![](http://images0.cnblogs.com/blog2015/750348/201505/281947033913587.png)
在例子里有2个SELECT语句。第1个在清空缓存后执行。我们来看看输出。
SQL Server 分析和编译时间:
当我们提交了一个查询给SQL Server去执行时,它需要为任何语法错误进行分析并编译,然后优化器生成最优计划去执行。SQL Server分析和编译时间指的是完成进行这些预执行步骤所花的时间。我们来看第2个执行的输出,在SQL Server分析和编译时间环节,CPU时间是0毫秒,占用时间是21毫秒。这表示SQL Server没有花任何时间在分析和编译上,因为执行计划已经在缓存里。CPU时间值的花在CPU上的时间,占用时间指的是完成分析和编译所占用的总时间。CPU时间和占用时间两者之间的区别可能是在CPU周期队列里的等待,或者在等待IO操作完成。这些时间在性能调优里并不重要,因为每次执行都会不一样。如果你在这个环节看到的时间基本是一致的,很可能你在使用重编译选项运行存储过程。SQL Server 执行时间:
这个指的是SQL Server完成执行编译好计划的时间。CPU时间指的是花在CPU上的实际时间,占用时间指的是包括信号等待时间(signal wait time)在内的完成执行的总时间,等待时间是完成IO操作和输出结果传送给客户端的时间。CPU时间可以作为性能调优的基线。这个值多次执行后不会有太大改变,除非你修改查询或数据有变动。在服务器上的负载不会影响这个值。请注意这里显示的时间单位都是毫秒。对于同个数据的同个查询CPU时间值在反复执行后可能会不同,但也是1/100秒内。占用时间就取决于很多因素了,例如服务器工作量,IO加载,服务器与客户端之间的网络带宽。因此在性能调优时,我们可以把CPU时间作为基线。参考文章:
http://www.sqlservercentral.com/blogs/practicalsqldba/2013/07/17/sql-server-performance-tuning-understanding-set-statistics-time-output/相关文章推荐
- 每日一题30:拓补排序
- IOS CoreText --- 段落样子CTParagraphStyle
- IOS CoreText --- 行 CTLineRef
- struts2 文件上传与下载原理
- MongoDB中的bson介绍和使用实例
- 正则表达式
- 正则表达式
- reflection
- DP(Dynamic Programming) demo: optimal substructure(recursion) + overlapping structure(memo)
- 闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
- Markdown 文本格式
- 重写listview,横向滑动出现删除按钮,点击按钮删除item
- org.apache.catalina.core.StandardWrapperValve invoke的解决办法
- Mac OS下关闭本地TimeMachine备份节省磁盘空间
- 选择主键:自然键还是代理键?
- WatchKit的代理与上下文
- IOS CoreText --- 基本用法
- Android ----Intent 的各种打开文件 doc word
- 恢复win8.1默认bat关联方法
- eclipse内存溢出问题