Sql 如何添加新索引';安全地';到生产数据库上的表? 我考虑在生产数据库中添加一个新的索引。我关心的是“如何在不影响用户的情况下实现它”

Sql 如何添加新索引';安全地';到生产数据库上的表? 我考虑在生产数据库中添加一个新的索引。我关心的是“如何在不影响用户的情况下实现它”,sql,sql-server-2008,indexing,non-clustered-index,Sql,Sql Server 2008,Indexing,Non Clustered Index,问题:(如果这不是一个坏主意)我如何确保在生产数据库的表上添加额外索引不会伤害/影响用户。有超过500万条记录的?如果有enterprise,则可以在添加索引时指定ONLINE=TRUE。如果有enterprise,则可以在添加索引时指定ONLINE=TRUE。通过在联机模式下创建索引,对表锁定的影响最小(毫秒)但您必须有SQL SERVER企业版 我不建议使用脱机模式在生产环境中为一个大表创建索引,因为您将锁定整个表,并且索引的创建将取决于sql server的繁忙程度。但是无论如何,如果你确

问题:(如果这不是一个坏主意)我如何确保在生产数据库的表上添加额外索引不会伤害/影响用户。有超过500万条记录的?如果有enterprise,则可以在添加索引时指定ONLINE=TRUE。

如果有enterprise,则可以在添加索引时指定ONLINE=TRUE。

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


我不建议使用脱机模式在生产环境中为一个大表创建索引,因为您将锁定整个表,并且索引的创建将取决于sql server的繁忙程度。但是无论如何,如果你确信你的产品是超高速的,你就创造它

通过在联机模式下创建索引,对表锁定的影响最小(毫秒),但必须使用SQL SERVER Enterprise edition


我不建议使用脱机模式在生产环境中为一个大表创建索引,因为您将锁定整个表,并且索引的创建将取决于sql server的繁忙程度。但是无论如何,如果你确信你的产品是超高速的,你就创造它

如果您没有Enterprise:根据我的经验,回滚添加索引所需的时间与到达索引所需的时间相同。因此,如果您确实预订了30分钟的维护窗口来进行更改,我总是会中途取消交易(15分钟)给足够的时间回滚,并在窗口结束时访问表。如果您没有Enterprise:根据我的经验,回滚添加索引所需的时间与到达目的地所需的时间相同。因此,如果您确实预订了一个30分钟的维护窗口来进行更改,我会在中途(15分钟)取消该事务,以便有足够的时间回滚,并在窗口结束时访问该表。