SQL Server ->> Online Index Rebuilding(联机索引重建)

SQL Server的Enterprise Edition是支持联机索引重建的。那么联机索引重建是怎么工作的以及对我们的查询有什么影响呢?

既然是联机,SQL Server保持了现有索引对于用户的可用,也就意味着它还不会去修改现有索引以及它相关联的统计数据。那么可以猜想下它的做法其实和SQL Server下Switch Partition就有相似的做法了 -- 最小化数据离线时间。它应该是先生成索引和统计数据,这个时候新的索引和统计数据肯定都分配好了object_id,内部肯定是已经可见了,只是对于用户外部访问还是不可见的罢了。在索引重建结束和新的统计数据建立完成后,申请表的Sch-X锁把现有的索引指向新的索引。完成后新的索引和统计数据就可见了。然后它再对所有引用到这张表的查询进行重编译。

那么索引重组呢?索引重组做的工作是把索引数据的尾端数据尽量往前面空的页面填充,它并不会像索引重建那样更新统计数据,也就不会导致查询重编译了。

至于说这一切和隔离模式有没有关系。隔离模式只和数据页面的访问相关,怎么可能和统计数据有关呢?

参考:

Will SQL Server use ‘incomplete’ or ‘dirty’ statistics during online index rebuild?

转载于:https://www.cnblogs.com/jenrrychen/p/5003865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值