SQL Server执行计划中“Estimated CPU Cost”是否代表CPU使用率百分比?
关于SQL Server中Estimated CPU Cost的说明
嘿,这个问题问得特别典型,不少刚接触执行计划的朋友都会把这两个概念搞混——答案是:完全不是一回事。
下面给你掰扯清楚两者的区别:
Estimated CPU Cost是SQL Server查询优化器用来衡量查询/运算符开销的内部相对成本单位,它的本质是优化器预估该运算符在一个「基准硬件配置」上执行所需的CPU时间(单位是秒)。比如一个运算符的预估CPU成本是0.001,意思是优化器觉得它在基准机器上大概要花0.001秒的CPU时间,和CPU使用率百分比没有任何直接关联。- 而任务管理器、PerfMon里显示的CPU使用率%,是系统级的实时指标,反映的是当前整个系统里所有进程占用CPU资源的比例,和查询计划里的这个预估成本属于完全不同的衡量维度,没法直接换算。
另外要提一句:这个预估成本是优化器基于统计信息和内置模型算出来的,实际运行时的真实CPU开销可能会因为硬件差异、数据变化等因素和预估数值有偏差哦。
内容的提问来源于stack exchange,提问作者zbartek28
相关产品推荐
相关产品推荐

