xhr489 Asked: 2021-06-20 10:43:23 +0800 CST2021-06-20 10:43:23 +0800 CST 2021-06-20 10:43:23 +0800 CST SQL Server 中的锁管理和查询成本 772 在执行查询时,我们有一个语句的估计子树成本,我们还可以查看例如 CPU 时间或逻辑读取。 估计的子树成本是否在其公式中包含获取锁和锁升级的成本?另外我猜管理锁的过程需要CPU。查询的 CPU 时间是否包括用于锁管理和锁相关任务的 CPU 时间? sql-server locking 1 个回答 Voted Best Answer David Browne - Microsoft 2021-06-20T10:58:16+08:002021-06-20T10:58:16+08:00 估计的子树成本是对查询成本的粗略估计,基于20 年前特定计算机上的查询执行时间。基于成本的查询优化器使用它来评估选择哪个查询计划。 它被校准以考虑锁定成本,但可能过于粗略估计无法解释锁定升级。 实际查询计划的 CPU 成本是查询成本的最佳单一衡量标准,因为大多数查询操作最终都会消耗 CPU 时间。特别是 CPU 时间占逻辑 IO、锁定、读取数据页、执行计算和比较等。 唯一不计入 CPU 时间的查询已用时间部分是等待,而等待通常不是查询固有的,而是由与其他会话的交互或需要读取不在页面中的数据引起的缓存,或将事务提交到日志文件等。
估计的子树成本是对查询成本的粗略估计,基于20 年前特定计算机上的查询执行时间。基于成本的查询优化器使用它来评估选择哪个查询计划。
它被校准以考虑锁定成本,但可能过于粗略估计无法解释锁定升级。
实际查询计划的 CPU 成本是查询成本的最佳单一衡量标准,因为大多数查询操作最终都会消耗 CPU 时间。特别是 CPU 时间占逻辑 IO、锁定、读取数据页、执行计算和比较等。
唯一不计入 CPU 时间的查询已用时间部分是等待,而等待通常不是查询固有的,而是由与其他会话的交互或需要读取不在页面中的数据引起的缓存,或将事务提交到日志文件等。