联机执行索引操作
可以联机创建、重新生成或删除索引。ONLINE 选项允许并发用户在执行这些索引操作期间访问基础表或聚集索引数据和任何关联非聚集索引。例如,一个用户正在重新生成聚集索引时,该用户和其他用户可以继续更新和查询基础数据。当脱机执行 DDL 操作(例如,生成或重新生成聚集索引)时,这些操作持有基础数据和关联索引的排他锁。这样可以防止在索引操作未完成时对基础数据进行修改和查询。
![]() |
---|
联机索引操作仅在 SQL Server Developer Edition、Evaluation Edition 和 Enterprise Edition 中可用。 |
建议对于全天候运行的业务环境执行联机索引操作,在这些环境中,在执行索引操作期间必须有并发用户活动。
以下 Transact-SQL 语句中可以使用 ONLINE 选项。
ALTER TABLE(若要使用 CLUSTERED 选项添加或删除 UNIQUE 约束或 PRIMARY KEY 约束)
有关联机索引操作的详细信息,请参阅联机索引操作的工作方式和执行联机索引操作指南。
示例
在下面的示例中,AdventureWorks2008R2 示例数据库中 Product 表的所有索引都是联机重新生成的。
USE AdventureWorks2008R2;
GO
ALTER INDEX ALL ON Production.Product
REBUILD WITH (ONLINE = ON);