gpt4 book ai didi

oracle - 如果表没有记录,为什么查询需要时间

转载 作者:行者123 更新时间:2023-12-01 23:43:02 24 4
gpt4 key购买 nike

我们已经删除了表的所有记录,然后我们从该表执行 select *。为什么这个查询需要时间..?

最佳答案

如果您计划删除表中的所有记录,“TRUNCATE”可能是替代方法。请记住,截断将执行隐式提交(DDL 命令)。

高水位线综合症 (HWM)

您正在经历“HWM 综合症”。如果您向表中插入一百万行并执行 select count(*) from table。此后删除所有行。当您现在执行新的 select count(*) from table 时,它所花费的时间与其中的一百万行一样长。什么!!这怎么可能??

“嘿,那里什么都没有——而且它需要永远。这个数据库很糟糕,Oracle 性能不佳,MariaDB 好多了!”(HWM 综合症)

一如既往地归结为了解 Oracle 机器的工作原理。执行delete from table 时不会删除任何 block 。它们被保存以供将来插入和更新。当进行全表扫描(无索引扫描)时,将从头开始读取所有 block ,直到 HWM。截断操作将重置 HWM。

您可以阅读有关 HWM 的更多信息 here

祝你好运!

关于oracle - 如果表没有记录,为什么查询需要时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64726293/

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