对 set statistics time on的两个执行时间权威解释

今天在sqlservercentral上看到一个帖子,关于对set statistics time on输出两个cpu执行时间的解释(大牛的解释):

CPU time is how much time was spent by the CPU (or CPUs). Total time is how long it took from start to finish.

For example, if it takes 1 millisecond for the CPU to tell the drive array that it needs data from a set of addresses, and then it takes 5 minutes for the drives to dump that data into RAM, and then it takes the CPU 10 milliseconds to process the data, and 4 to format it and send it to the video card, you‘ll end up with 15 milliseconds of CPU time, and a total time over 5 minutes. (That‘s a bit of a simplification, but it‘s essentially what‘s going on.)

The time to render the data for display can be much longer than the CPU time, as can the drive access time.

You can also have the opposite, where CPU time is greater than total time. This comes from multiple CPUs. If each one spends 30 milliseconds on something, on a 4-CPU server, you can end up with 120 milliseconds of CPU time, and a total time of something like 31 milliseconds.

-------------------

n general, the time difference between CPU time and elapsed time is the time that the worker executing that query spent waiting.

It may have been waiting for IO to be completed (data off disk). It may have been waiting for a lock or latch to be released. It may have been waiting for a memory grant. It may even have been waiting for some time on the processor.

Often, when doing time tests on a prod server (eg with profiler) a large difference between CPU time and elapsed time indicated a possible blocking scenario, especially if it happens regularly.

----------------------------

So to summarize it maybe 4 things:

1. IO (data off disk)
2. Lock or latch to be released
3. May wait for a memory grant
4. may wait for some time on the processor

--------------------------

In general, the time difference between CPU time and elapsed time is the time that the worker executing that query spent waiting.

It may have been waiting for IO to be completed (data off disk). It may have been waiting for a lock or latch to be released. It may have been waiting for a memory grant. It may even have been waiting for some time on the processor.

Often, when doing time tests on a prod server (eg with profiler) a large difference between CPU time and elapsed time indicated a possible blocking scenario, especially if it happens regularly.

也就是说总共的时间有很多种情况会大于真正的执行时间, 甚至于绘制表格的时间,That‘s probably mostly time spent rendering results. 
这也算是对我这篇文章的一个解释

时间: 2024-07-30 21:25:33

对 set statistics time on的两个执行时间权威解释的相关文章

vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释

本文原文出处: http://blog.csdn.net/bluishglc/article/details/42273197严禁任何形式的转载,否则将委托CSDN官方维护权益! 问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系? 首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载

两个举例通俗解释聚类和分类

入门级 聚类: 一个班级有30学生,每个学生10张不同照片,将这300张照片打乱,聚类就是在不告诉机器任何学生信息,仅凭对300张照片的学习,然后把它分成10类: 分类 一个班级有30学生,每个学生10张不同照片,每张照片上面写了该同学的名字,分类就是机器对这300张照片和照片上的名字进行学习,形成一个包含10个类的模型,用该模型来预测未知照片属于哪个类. 进阶级 聚类: 无监督学习,聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程. 分类: 有监督学习,就是按照某种标

js获取url參数值的两种方式具体解释

有个url例如以下: http://passport.csdn.net/account/login? from=http%3a%2f%2fwrite.blog.csdn.net%2fpostedit 我们该怎样获取from这个參数的值呢?在网上搜了下方法非常easy,例如以下,第一种是通过正则.另外一种通过切串放进数组的方式: 方法一: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + &

实验12:Problem D: 判断两个圆之间的关系

Home Web Board ProblemSet Standing Status Statistics Problem D: 判断两个圆之间的关系 Problem D: 判断两个圆之间的关系 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 381  Solved: 325[Submit][Status][Web Board] Description 定义Point类,包括double类型的两个属性,分别表示二维空间中一个点的横纵坐标:定义其必要的构

[官方说明] 为什么ES4要分成两阶段?

从ES4第一个版本发布到现在,已经有段时间了,绝大多数坛友都已经适应了ES4所带来的新封装模式,但仍有部分新人和坛友对ES4的两阶段模式带有不解或曲解.本帖将就ES4的两阶段意义做出解释说明,希望更多朋友能体会ES4两阶段模式的设计目的. 1.什么是封装 讨论问题之前,我们先来简单说说什么是封装. 其实“封装”这个词翻译的太过抽象了,而原词汇“Sysprep”却是一个很具象化的词语,原意是“将系统(sys)准备好(prep)”,换句话说,就是将系统设定为可以部署(deploy)的状态. 封装本身

近两年看书的总结--1.我们是如何做决定的

这两年看了不少书籍,大约分为这三类:1.思维&心理:2.编程:3.休闲小说.觉得收获不小,时刻有一些总结的想法. 而为什么会有总结的想法呢?其实也是为了加强记忆,理解.能证明自己立即的一种方式就是:说的清楚.同时,这些总结也是这段学习过程的感悟,可能再过一段时间后,对文中的某些知识点的理解又有了新的感悟,这样就可以对以前的所想进行印证,这样就可以感觉到自己的思考过程的变化. 先开始总结所阅读思维方面所获取的知识. 阅读这一系列书籍的起始的原因是阅读了刘未鹏的博客,觉得很有意思,之后又根据他的豆列

OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle::CS_ORBIT”. b.键盘WSAD键移动镜头,鼠标拖拽改变镜头方向,类似于OGRE中的“OgreBites::CameraStyle::CS_FREELOOK”. 1.坐标变换的一个例子,两种思路理解多个变换的叠加 现在考虑Scale(1,2,1); Transtale(2,1,0); Rot

一个实际问题分析及解决之五:两种方法的区别和选择

前面两篇文章分别解释了在websphere环境下建立SSL连接的两种办法,那么一更进一步: 两者的区别是什么? 本质上两者是一样的都是通过JVM来建立socket连接,区别在于配置JVM socket连接方式. 两种配置方式的优先级? 系统变量方式的优先级高,会覆盖websphere的配置.具体可看下面一篇文章. http://www.ibm.com/developerworks/websphere/techjournal/0502_benantar/0502_benantar.html 如何选

android:layout_weight越大所占比例越大和越大所占比例越小的两个例子

摘要: 我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3907146.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 关于android:layout_weight到底是什么含义,在网上“越大所占比例越大”和“越大所占比例越小”两种说法都有.实际上这两种情况也都有. 例1:0dp <LinearLayout android:orientation="vertical" android:l