0

我有一个运行非常快的小查询。不知何故,我认为向未索引的列添加索引会使其更快,但结果并非如此。事实上,它确实增加了我的磁盘读取和执行时间。我想问的是有人可以向我解释有关索引如何工作以及为什么它会降低而不是提高性能的详细信息。

提前致谢!

PS:我的 RDBMS:甲骨文

4

1 回答 1

2

完全可以放在一张小桌子上。如果表真的很小,则可以通过一次读取将表完全读入内存,并且可以完全在内存中执行全表扫描。在此处添加索引需要读取至少一个索引页,然后读取数据页,以使 I/O 增加一倍。这是一个不寻常的案例,但并非闻所未闻。

然而,这只是我的猜测。要真正找出正在发生的事情,请在打开索引的情况下获取查询的执行计划,删除索引,然后在没有索引的情况下获取执行计划。比较计划,并决定是否要重新添加索引。

分享和享受。

于 2012-09-08T01:58:59.937 回答