您的位置:首页 > 数据库

重建数据库表所有索引

2006-07-12 21:20 239 查看
/***********************
重建数据库表所有索引
2006-06-12

先选择要修复的数据库
***********************/

DECLARE @name varchar(100)

--所有用户表游标
DECLARE authors_cursor CURSOR FOR
Select [name]
from sysobjects where xtype='u' order by id

OPEN authors_cursor

FETCH NEXT FROM authors_cursor
INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN

--修复数据表索引
DBCC DBREINDEX (@name, '', 70)

-- Get the next author.
FETCH NEXT FROM authors_cursor
INTO @name
END

/***********************
重建指定表的索引
2006-06-12

先选择要修复的数据库
***********************/

--第一步:查看是否需要维护,查看扫描密度/Scan Density是否为100%
declare @table_id int
set @table_id=object_id('表名')
dbcc showcontig(@table_id)

--第二步:重构表索引
dbcc dbreindex('表名',pk_索引名,100)

--重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引
--并不一定能达100%。
dbcc dbreindex('表名','',100)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: