性能调优:理解Set Statistics Time输出
原文:性能调优:理解Set Statistics Time输出

在性能调优:理解Set Statistics IO输出我们讨论了Set Statistics IO,还有如何帮助我们进行性能调优。这篇文章会讨论下Set Statistics Time,它会告诉我们执行一个查询需要的时间。

我们用一个例子来开始。

 1 USE AdventureWorks2008r2
 2 GO
 3             DBCC dropcleanbuffers
 4             DBCC freeproccache
 5
 6 GO
 7 SET STATISTICS TIME ON
 8 GO
 9 SELECT *
10     FROM Sales.SalesOrderHeader SOH INNER JOIN  Sales.SalesOrderDetail SOD ON
11             SOH.SalesOrderID=SOD.SalesOrderID
12     WHERE ProductID BETWEEN 700
13         AND 800
14 GO
15 SELECT *
16     FROM Sales.SalesOrderHeader SOH INNER JOIN  Sales.SalesOrderDetail SOD ON
17             SOH.SalesOrderID=SOD.SalesOrderID
18     WHERE ProductID BETWEEN 700
19         AND 800

在例子里有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时间作为基线。

posted on 2015-06-02 09:49 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4545588.html

性能调优:理解Set Statistics Time输出相关推荐

  1. 性能调优:理解Set Statistics IO输出

    性能调优是DBA的重要工作之一.很多人会带着各种性能上的问题来问我们.我们需要通过SQL Server知识来处理这些问题.经常被问到的一个问题是:早上这个存储过程运行时间还是可以的,但到了晚上就很慢很 ...

  2. 理解统计信息(3/6):谁创建和管理统计信息?在性能调优中,统计信息的作用。...

    在理解统计信息(2/6):直方图 中,我们讨论了直方图,密度向量,还有SQL Server如何用统计信息做基数计算(cardinality estimation).这篇文章会讨论统计信息如何被创建,还 ...

  3. 深入理解JVM—性能调优

    在上文中我们分析了很多性能监控工具,介绍这些工具的目的只有一个,那就是找出对应的性能瓶颈.盲目的性能调优是没有效果的,只有充分知道了哪里出了问题,针对性的结果才是立竿见影的.解决了主要的性能问题,那些 ...

  4. 深入理解JVM性能调优

    深入理解JVM性能调优 您的评价:        收藏该经验     width="728" height="90" frameborder="0&q ...

  5. 深入理解Java虚拟机:Jvm性能调优

    本篇内容包括:Jvm 性能调优简介:根据需求目标进行 Jvm 调优规划(即 调优的目标.调优的步骤):Jvm 调优参数.命令.工具:以及 Java 中的内存泄露问题的详解- 一.Jvm 性能调优简介 ...

  6. 深入理解JVM虚拟机14:JVM性能调优的6大步骤,及关键调优参数详解

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数. 1.Full GC 会对整个堆进行整理,包括Young.Tenured和Perm.Full GC因为需要对 ...

  7. mysql监控、性能调优及三范式理解

    @酷勤网-程序员的那点事 <mysql监控.性能调优及三范式理解>下文介绍了关于mysql监控.性能调优及三范式理解的内容.mysql监控.性能调优及三范式理解(来自: 博客园 ) @酷勤 ...

  8. 《性能调优之JVM》❤️04JVM常量池详解之深入理解Class常量池、运行时常量池、字符串常量池、八种基本数据类型的包装类和对象池

    JVM常量池详解 一.Class常量池 1.1字面量 1.2符号引用 二.运行时常量池 三.字符串常量池 3.1设计思想 3.2设计原理 3.3字符串常量池位置 3.4三种字符串操作 四.八种基本数据 ...

  9. 性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

    来源: https://www.cnblogs.com/laoqing/p/11629941.html 一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显 ...

最新文章

  1. rsync的基本使用
  2. 从网络字节流中提出整数
  3. C++学习之路 | PTA乙级—— 1046 划拳 (15 分)(精简)
  4. python unit test_Python Unittest
  5. 【javascript】简单原型链、借用构造函数
  6. docker 安装最新mysql
  7. JRTPLib的编译步骤
  8. 有专门收C语言答案的软件吗,C语言二级考试题库APP
  9. ipython怎么安装_如何装ipython
  10. mysql根据用户经纬度查询附近商家,mysql根据经纬度获取附近的商家
  11. App登录方式和测试重点总结
  12. 【word毕业论文排版(1)】尾注的删除
  13. 谷歌卫星影像免费下载?来看这些软件
  14. YouTuBe各类优秀频道推荐四直播+科教
  15. 日期(datetime)的模糊查询
  16. 微信公众号本地环境搭建(解决微信接口需要公网地址,但是只有本地环境的问题)
  17. css3上箭头怎么写,CSS3箭头
  18. 电话簿管理系统(超详细)
  19. 单模光电转换器怎么接_光纤收发器(网桥,接口转换器),单模光纤收发器
  20. python多线程爬虫案例之爬取麦田

热门文章

  1. 数据结构之并查集:UF-Tree优化并查集——19
  2. video4linux 安装,【精品博文】Video4linux 下视频编程的流程
  3. 删除一行下方单元格上移_快速删除Excel工作表多余空单元格
  4. LeetCode 2034. 股票价格波动(set + map)
  5. LeetCode 1910. 删除一个字符串中所有出现的给定子字符串
  6. LeetCode 562. 矩阵中最长的连续1线段(DP)
  7. LeetCode 980. 不同路径 III(DFS+回溯)
  8. LeetCode 63. 不同路径 II(DP)
  9. LeetCode 367. 有效的完全平方数(二分查找)
  10. LeetCode 32. 最长有效括号(栈DP)