SqlServer2008R2重组索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer2008R2重组索引相关的知识,希望对你有一定的参考价值。

1.前言

如果碎片程度小于30%,建议使用重组而不是重建。因为重组不会锁住数据页或者数据表,并且降低CPU的资源。总得来说,重组会清空当前的B-TREE,特别是索引的叶子节点,重组数据页和消除碎片。和重建不同,重组不会添加任何新数据页。

2.准备工作

为了了解是否有必要重组索引,需要首先查看碎片程度,如果在10%以下,那一般没必要做什么维护,如果在10%~30%,就建议进行重组。

3.步骤

(1).下面是各种重组索引的方法
--不指定参数重组索引:  
ALTER INDEX [idx_refno] ON [ordDemo]
REORGANIZE
GO

--重组表中所有索引:
ALTER INDEX ALL ON [ordDemo]
REORGANIZE
GO

--使用DBCC INDEXDEFRAG重建表上所有索引:
DBCC INDEXDEFRAG(AdventureWorks,ordDemo)
GO

--使用DBCC INDEXDEFRAG重组表上一个索引:
DBCC INDEXDEFRAG(AdventureWorks,ordDemo,idx_refno)
GO
(2).DBCC INDEXDEFRAG命令同样是后续不建议继续使用的命令

4.分析

索引重组,也可以称为碎片重组,对单独索引的操作将使用单独的线程。不可以并行操作。所以同一时刻只有一个索引被操作。

重组并不产生新页,但是会压缩页,如果页面已经为空,将会移除这个页,所以填充因子选项是不需要的。同时,因为它不会锁住对象,所以总是联机处理。

重组同样需要sysadmin、db_onwer、db_ddladmin角色。

以上是关于SqlServer2008R2重组索引的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008r2 向带有索引的表里大批量插入数据

SqlServer2008R2索引视图

sqlserver2008r2clr应用签名不匹配

关于视图和索引 (SQL Server 2008 R2)

记录安装SQLServer2008R2的坑

SQL Server 2008R2的安装