【问题标题】:What is the pros and cons to rebuild index regularly定期重建索引的优缺点是什么
【发布时间】:2014-12-02 21:15:55
【问题描述】:

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

alter index SYS_C0078275 rebuild;                  
alter index SHOPPER_ID rebuild;

【问题讨论】:

  • “它是否有可能导致数据问题或产生冗余数据?” 你的意思是,有一些行没有被索引?还是索引两次? “我们可以信任索引重建查询吗?” 索引是您的 RDBMS 的一个关键特性——如果您不能“信任”它们,可能是时候切换到其他 RDBMS 供应商了……话虽如此,我让其他人回答是否建议每天重建索引。

标签: oracle indexing


【解决方案1】:

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

也就是说,很多网站都会定期进行索引重建。如果您已经有一个停机时间窗口来进行重建,那么性能下降可能不是什么大问题。您可能拥有一个罕见的系统之一,该系统具有一个或两个实际上从定期重建中受益的索引(尽管您更有可能想要解决导致索引需要重建的潜在问题)在这种情况下,重建一切可能是有益的,即使它是矫枉过正。

关于索引重建的规范讨论是 Richard Foote 的 Rebuilding the Truth。如果您想进行更详细的讨论,那就是您想去的地方。

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2013-02-08
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多