回答

收藏

在SQL Server离线和在线索引重建有什么区别?

技术问答 技术问答 464 人阅读 | 0 人回复 | 2023-09-14

重建索引时,有ONLINE = OFF和ONLINE =: D; P+ }, [/ z. W
ON选项。我知道,当在线模式打开时,它将创建索引的副本,将新的查询切换查询,然后重建原始索引,并使用版本控制跟踪更改(如果我错了,请纠正我)。
/ R  T- ]1 H, L4 }2 M" Y+ P0 A但是,SQL离线模式下会做什么?
! B& u$ Y; v; S! u                                                               
5 K! ~  u2 S2 m1 F! z: [    解决方案:                                                               
! {6 Y3 }& r7 ^. u3 M$ N2 X# s4 }                                                                新索引将在在线模式下建立,旧索引可以读写。任何旧索引的更新也将应用于新索引。反问题列用于跟踪更新和重建之间可能存在的冲突(即删除未复制的行)。请参考在线索引操作。在此过程完成后,表将被锁定一段时间,新索引将取代旧索引。如果索引包含LOB列,则SQL
2 G% w. Q+ k# K; j; mServer 2005/2008 / R2不支持ONLINE操作。
" O7 M( q' ~, s; n1 M' r3 l& I在离线模式下,表将提前锁定,以进行任何读取或写入,然后在保持表锁定的同时从旧索引构建新索引。重建索引时,不允许阅读或写表。表上的锁只有在操作完成后才能释放,读写操作再次允许。5 ~! {2 a) M& \' e6 O
请注意,在SQL Server  h; R. E! _. r( E5 W8 ]3 W
对LOB包括限制LOB请参考在线索引操作列索引。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则