加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 为什么我们必要在SQL Server中重建和重组索引

发布时间:2021-01-13 04:38:32 所属栏目:编程 来源:网络整理
导读:在搜刮互联网后,我找不到缘故起因 为什么我们必要在SQL Server中重建和重组索引? 当我们重建和重组时,内部会产生什么? 关于site的文章说: Index should be rebuild when index fragmentation is great than 40%. Index should be reorganized when index fragm

在搜刮互联网后,我找不到缘故起因

>为什么我们必要在SQL Server中重建和重组索引?
>当我们重建和重组时,内部会产生什么?

关于site的文章说:

Index should be rebuild when index fragmentation is great than 40%. Index should be reorganized when index fragmentation is between 10% to 40%. Index rebuilding process uses more CPU and it locks the database resources. SQL Server development version and Enterprise version has option ONLINE,which can be turned on when Index is rebuilt. ONLINE option will keep index available during the rebuilding.

我无法领略这一点,固然它说什么时辰这样做,但我想知道为什么我们必要重建和重组索引?

办理要领

在执行插入更新和删除操纵时,索引将在内部和外部变为碎片.

内部碎片是指索引页面上的可用空间百分比很高,这意味着SQL Server在扫描索引时必要读取更多页面.

外部碎片是当索引的页面不再有序时,因此SQL Server必需做更多事变,出格是在IO术语中读取索引.

假如您的索引过于分手,最多,您的查询服从会低落,但最坏的环境是,SQL Server将遏制一路行使索引,这意味着险些全部查询都必需执行表扫描或聚簇索引扫描.这会危险你的示意许多!

从头组织索引时,SQL Server行使现有的索引页面,只是在这些年数段上随机播放数据.这将缓解内部碎片,还可以消除少量的外部碎片.它比重建更轻量级操纵,而且始终在线.

重建索引时,SQL Server现实上会对索引的数据举办从头分派并行使一组新的索引页.这显然会减轻内部碎片和外部碎片,可是这是一个更重的操纵,默认环境下会使索引脱机,尽量它可以作为在线操纵执行,详细取决于您的SQL Server版本和配置.

可是,重建之后请不要祈望有0碎片.除非您行使MAXDOP查询提醒,不然SQL Server将并行化重建操纵而且涉及的处理赏罚器越多,也许存在的碎片就越多,由于每个处理赏罚器或焦点将单独重建其索引的部门或片断,而不思量互相.这是在最佳碎片级别和重建索引所耗费的时刻之间的衡量.对付靠近0的碎片,行使MAXDOP 1并在TempDB中对功效举办排序.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读