sql-server – 为什么我们需要在SQL Server中重建和重组索引
在搜索互联网后,我找不到原因 >为什么我们需要在SQL Server中重建和重组索引? 关于site的文章说:
我无法理解这一点,虽然它说什么时候这样做,但我想知道为什么我们需要重建和重组索引? 解决方法在执行插入更新和删除操作时,索引将在内部和外部变为碎片.内部碎片是指索引页面上的可用空间百分比很高,这意味着SQL Server在扫描索引时需要读取更多页面. 外部碎片是当索引的页面不再有序时,因此SQL Server必须做更多工作,特别是在IO术语中读取索引. 如果您的索引过于分散,最多,您的查询效率会降低,但最坏的情况是,SQL Server将停止一起使用索引,这意味着几乎所有查询都必须执行表扫描或聚簇索引扫描.这会伤害你的表现很多! 重新组织索引时,SQL Server使用现有的索引页面,只是在这些年龄段上随机播放数据.这将缓解内部碎片,还可以消除少量的外部碎片.它比重建更轻量级操作,并且始终在线. 重建索引时,SQL Server实际上会对索引的数据进行重新分配并使用一组新的索引页.这显然会减轻内部碎片和外部碎片,但是这是一个更重的操作,默认情况下会使索引脱机,尽管它可以作为在线操作执行,具体取决于您的SQL Server版本和设置. 但是,重建之后请不要期望有0碎片.除非您使用MAXDOP查询提示,否则SQL Server将并行化重建操作并且涉及的处理器越多,可能存在的碎片就越多,因为每个处理器或核心将单独重建其索引的部分或片段,而不考虑彼此.这是在最佳碎片级别和重建索引所花费的时间之间的权衡.对于接近0的碎片,使用MAXDOP 1并在TempDB中对结果进行排序. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |