gpt4 book ai didi

sql-server - 查询计划显示,当实际不涉及行时,插入成本为 54%

转载 作者:行者123 更新时间:2023-12-02 19:30:31 25 4
gpt4 key购买 nike

在我的一个查询中,有一个插入数据到临时表中。查看查询计划,它显示实际插入到临时表中的时间为 54%(仅将数据插入到临时表中)。但是,没有行被插入到临时表中。

为什么在没有插入行时计划显示非零值?

最佳答案

即使在实际查询计划中,显示的子树成本也是基于估计以及 various heuristics and magic numbers used by the cost based optimiser 。它们可以是woefully wrong应与大量盐一起服用。

重现示例

create table #t
(
i int
)

insert into #t
select number
from master.dbo.spt_values
where number = 99999999

Plan

实际插入为零行,但估计为 1 行,这就是子树成本的来源。

编辑:我刚刚尝试了以下操作

insert into #t
select top 0 number
from master.dbo.spt_values
where number = 99999999

Plan

即使它获得了正确的估计行数,它仍然会为插入分配一个小的非零成本。我猜它使用的启发式总是分配一些固定成本的小元素。

关于sql-server - 查询计划显示,当实际不涉及行时,插入成本为 54%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com