【问题标题】:When is the right time to create Indexes in Oracle?什么时候在 Oracle 中创建索引合适?
【发布时间】:2013-05-02 03:34:04
【问题描述】:

将在生产环境中推出以 Oracle 作为 DataStore 的全新应用程序。数据库使用 CBO 并且我已经确定了一些列来进行索引。我预计 6 个月后特定表中的记录总数为 400 万。之后将添加很少的记录,并且索引列的记录中不会有任何更新。我的意思是大多数更新将在 NonIndexed 列上。

现在创建索引是否可取?还是我需要等几个月?

【问题讨论】:

  • 看不到任何延迟索引创建的理由
  • 您使用的是哪个 Oracle 版本?

标签: oracle indexing database-performance


【解决方案1】:

如果表需要索引,那么在表中的行数超出可能合理保留的缓存数之后,您将导致很多性能不佳(全表扫描 + 实际 I/O)。假设是 20000 行。我们称之为幻数。您在一周的生产中达到了 20000 行。之后,表上的查询和更新将逐渐变慢,平均而言,随着添加更多行。

您可能担心插入带有索引字段的新行的开销。那是一次性的打击。当您延迟添加索引时,您需要针对数十个查询和更新进行交易。

目前的权衡主要是支持添加索引。特别是因为我们不知道那个神奇的数字(20000?)到底是什么。可以更大。或者更小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2011-11-21
    • 2020-06-02
    相关资源
    最近更新 更多