SQL Server重建所有表索引

数据库一些数据表数据量剧增之后,比如超100W行,查询效率会有所降低,就犹如硬盘多了很多碎片一样。
适当地进行表索引重建,可以提升查询效率。
下面是对数据库所有表进行表索引重建,请在无人使用数据库时使用:
DECLARE @TABLE VARCHAR(100)
DECLARE CURT CURSOR FOR SELECT [NAME] FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY ID
OPEN CURT  
FETCH NEXT FROM CURT INTO @TABLE
WHILE @@FETCH_STATUS = 0   
BEGIN
    --参数1是表名。
    --参数2指定索引名称,空表所有。
    --参数3就填充因子,是指索引页的数据填充程度。
    --0表示使用先前的值,100表示每个索引页都填满,这时查询效率最高,但插入索引时会移动其它索引,可根据实际情况来设置。
    DBCC DBREINDEX (@TABLE, '', 90)  
    FETCH NEXT FROM CURT INTO @TABLE   
END
CLOSE CURT
DEALLOCATE CURT
原文地址:https://www.cnblogs.com/atomy/p/7458904.html