【问题标题】:How to add new indexes 'SAFELY' to a table on the Production Database?如何将新索引“安全”添加到生产数据库上的表中?
【发布时间】:2013-04-03 08:29:22
【问题描述】:

我考虑在生产数据库中的表上添加一些新索引。我关心的是“如何在不影响用户的情况下做到这一点”

问题:(如果这不是一个坏主意)我如何确定在 PRODUCTION Db 中的表上添加额外索引不会损害/影响用户。有超过 500 万条记录?

【问题讨论】:

    标签: sql sql-server-2008 indexing non-clustered-index


    【解决方案1】:

    如果您有企业,您可以在添加索引时指定 ONLINE = TRUE。

    【讨论】:

    • 如果您没有 Enterprise:根据我的经验,回滚添加索引所需的时间与到达那里所需的时间相同。因此,如果您确实预订了一个 30 分钟的维护窗口来进行更改,我总是会在中途(15 分钟)取消事务,以便有足够的时间回滚并在窗口结束时让表格可以访问。跨度>
    【解决方案2】:

    通过在联机模式下创建索引,您将对表锁定的影响最小(毫秒),但您必须拥有 SQL SERVER 企业版。

    我不建议使用离线模式为大表创建索引,因为您将锁定整个表,并且索引的创建将取决于 sql server 的繁忙程度。但无论如何——如果你确信你的生产速度非常快,你就可以创造它。

    【讨论】:

      猜你喜欢
      • 2016-10-30
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多