我在SQL Server 2012中有一个查询。在联机索引重建操作期间,如果我运行SQL查询来读取/写入特定表'X'的数据会发生什么情况,这可能正在进行重建操作?请建议。
答案 0 :(得分:1)
...当一个用户(该用户)正在重建聚集索引时 和其他人可以继续更新和查询基础数据。
参考:Perform Index Operations Online
这显然也适用于非聚集索引的在线重建。
Guidelines for Online Index Operations
,在线索引重建比离线索引重建慢得多,并且使用更多的事务日志空间。
在线索引重建期间,构建阶段需要 IS
(意图共享)和 S
(共享)锁定以确保其他在重建索引时,进程不会获取对象上的任何排它锁。在最后阶段,将采用架构修改 Sch-M
锁定。此锁定会阻止对表的所有其他并发访问,但仅在 非常短的时间 时保留,同时删除旧索引并更新元数据。