Ent*_*ode 12 performance sql-server performance-tuning
在性能调优时,更重要的是:
一个例子:虽然性能调整 CPU 时间将减少~38%,但 Elapsed Time增加~22%。这是一种改进吗?
Han*_*non 17
CPU 时间是进程占用的处理器时间量。这并不表示持续时间。“Elapsed Time”表示任务的总持续时间。如果给定任务使用 8 个并行度(即 8 个线程),并且每个线程在任务的整个持续时间内以 100% 的速率使用,则 CPU 时间可能为 8000 毫秒,而 Elapsed Time 仅为 1000 毫秒。
因此,较短的“经过时间”表示更快的响应时间。
如果您担心 CPU 压力,而不关心用户体验,您可能想要更短的 CPU 时间和更长的运行时间。
如果这会导致经过的时间减少,您可以接受更长的 CPU 时间,因为这可能表明用户等待的时间更少,但 CPU 利用率更高。
可以说,查询优化的更重要指标是等待时间。
...虽然性能调优 CPU 时间将减少 ~38%,但 Elapsed Time 增加 ~22%。这是一种改进吗?
这完全取决于您要优化的内容以及原因。在最常见的意义上 - 查询输出的速度 - 这并不是一种改进,正如 Max Vernon 在他的回答中指出的那样。
但是,如果您的系统受 CPU 限制,那么这将是一个改进,因为您减少了 CPU 负载。事实上,如果是这种情况,最终结果也可能意味着更快地返回结果集。
如果您的系统受磁盘限制或内存限制,这将是一个中性结果,因为没有迹象表明它改进或降低了这些措施。
因此,在 95% 的情况下,Max 是绝对正确的——这不是改进。在剩下的少数情况下,它可能是一种改进。