SQL重建表索引

重建索引可以有效整理产生的索引碎片,从而加快查询速度

 

例如有个表:MealRecords,重建这个表索引:

DBCC DBREINDEX( MealRecords , '',  100 )

参数1:填表名

参数2:为''的话,表示该表的所有索引

参数3:填充因子,默认100

上面的写法,可以简化为:

DBCC DBREINDEX(MealRecords)

--------------------------------------------------------

如果是要重建整个数据库的所有表索引,可以用以下语句:

DECLARE @sql NVARCHAR(MAX)
SET @sql = N''
 
SELECT @sql = @sql + N'ALTER INDEX ALL ON ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ' REBUILD;'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'EastRiver'
 
EXEC sp_executesql @sql

--重建数据库所有表索引,你需要将EastRiver替换为你的数据库名称。