定期重建索引有什么好处和坏处

问题描述 投票:0回答:2

定期(例如每周或每天)运行脚本并重建当前模式下的所有索引是否可靠且健康?它是否有可能导致数据问题或对系统造成冗余?我们可以信任索引重建查询吗?

alter index SYS_C0078275 rebuild;                  
alter index SHOPPER_ID rebuild;
oracle indexing
2个回答
3
投票

Oracle中一般不需要重建索引。一般来说,您所做的事情会给数据库带来额外的工作,并且(除非您拥有企业版并且正在进行在线重建)会给您的应用程序带来额外的停机时间。对于具有大量随机插入(例如名称)的列上的索引,您可能会采用一个处于良好稳定状态的索引,做大量工作来压缩它,只是为了 Oracle 在接下来的时间里做大量工作一周分裂一堆块以回到稳定状态。另外,这又是一项需要监控的工作,可能会失败,等等。一般来说,没有什么好处(涉及对索引进行完整扫描的查询可能会在一段时间内更快一些)并且有很多潜在的缺点,所以我不建议这样做。

也就是说,很多网站都会定期重建索引。如果您已经有一个停机时间来进行重建,那么性能下降可能不会造成太大问题。您可能拥有一种罕见的系统,该系统具有一两个索引,这些索引实际上可以从定期重建中受益(尽管您更有可能希望修复导致索引需要重建的根本问题)在这种情况下,重建一切可能是有益的,即使它有点矫枉过正。

关于索引重建的规范讨论是 Richard Foote 的“重建真相”。如果您想要更详细的讨论,那就是您想去的地方。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.