Set statistics time 输出 CPU time> elapsed time

简介:

今天用Set Statisticis time比较语句的执行时间,信息如下:

 

SQL ServerExecution Times:

   CPU time = 199229 ms,  elapsed time = 156327 ms.

SQL Serverparse and compile time: 

   CPU time = 0 ms, elapsed time = 0 ms.

 

一般在OLTP的环境中我们看到的CPU time是小于elapsed time的。因为在执行的过程中除了CPU的开销可能还有其他的一些操作,比如等待数据从磁盘加载到内存的时间或者Blocking之类的等待,都会增加整个执行的时间。(如果看到CPU时间和Elasped Time差别很大,可以去查询是否SQLServer有资源瓶颈)。

 

对于这个案例我看了一下SQL Server的执行计划,使用了并行计划。由于cost threshold forparallelism的默认值是5秒,所以当SQL Server发现使用串行计划的开销高于5秒时会尝试创建使用并行计划。本例中发现SQLServer最后执行了大概两分半钟。

 

由于多个CPU同时执行所以将多个CPU的执行时间进行累积可能导致CPU(CPU time)的时间大于总的执行时间(elapsedtime)。


本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1345166


相关文章
|
SQL AliSQL 关系型数据库
AliSQL 20180124 版本发布 支持 CPU TIME 和优化 BINLOG 应用时索引选择
AliSQL 在线程级别增加了 CPU time 的性能指标,可以用来度量某个SQL或者执行单元所耗费的CPU 时间片,便于性能诊断。 当 Binlog 为 Row 模式的情况下,备库在同步更新时,索引的选择是基于简单规则的,没有走优化器的代价模型,所以有可能会因为索引选择不当导致主备有较大的延迟。
2184 0
|
数据库 关系型数据库 Oracle
|
SQL 关系型数据库 数据库
|
关系型数据库 Oracle OLAP
oracle中WAIT TIME 和 CPU TIME
(原创)DB time =DB wait time +DB CPU timeDB TimeTuning is not just about reducing waits.
895 0
|
16天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
40 4
|
1月前
|
移动开发 运维 监控
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
|
1月前
|
监控 Python
【python】实现cpu/内存监控的功能(非常简单)
【python】实现cpu/内存监控的功能(非常简单)
|
1月前
|
Linux
Linux 查看进程PID和线程CPU和内存占用情况
Linux 查看进程PID和线程CPU和内存占用情况
35 0
|
1月前
|
移动开发 Linux
Linux下如何查看哪些进程占用的CPU内存资源最多
Linux下如何查看哪些进程占用的CPU内存资源最多
|
21天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。