单个表重建索引:
--分析表的索引建立情况:
DBCC showcontig('patinfo')
如果扫描密度比例失调,逻辑扫描碎片过多,每页平均可用字节数过大则需要重建索引
--执行重建索引命令:
DBCC DBREINDEX('patinfo')
整个数据库重建索引:
-- 指定你要重建索引的数据库
USE his;
GO
DECLARE @table_name VARCHAR(200);
--查询数据库里的所有表名
DECLARE cursor_reindex CURSOR FAST_FORWARD READ_ONLY
FOR
SELECT name
FROM sys.tables;
--使用游标遍历表列表
OPEN cursor_reindex;
FETCH NEXT FROM cursor_reindex INTO @table_name;
WHILE @@FETCH_STATUS = 0
BEGIN
--开始重建表索引
DBCC DBREINDEX(@table_name);
--DBCC DBREINDEX(@table_name, '', 90)
FETCH NEXT FROM cursor_reindex INTO @table_name;
END;
CLOSE cursor_reindex;
DEALLOCATE cursor_reindex;