【O】SQL SERVER数据库维护与重建索引
金蝶云社区-springwind_liu
springwind_liu
1人赞赏了该文章 1,214次浏览 未经作者许可,禁止转载编辑于2014年09月14日 08:11:22
第一步:查看是否需要维护,查看扫描密度/Scan Density是否为100%
[list=1]
[*]declare @table_id int
[*]set @table_id=object_id('表名')
[*]dbcc showcontig(@table_id)
[/list] 第二步:重构SQL Server数据库表索引
[list=1]
[*]dbcc dbreindex('表名',pk_索引名,100)
[/list]重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引,并不一定能达100%。
[list=1]
[*]dbcc dbreindex('表名','',100)
[/list]
重建数据库所有表的索引
    USE My_Database; 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, '', 90)
   FETCH NEXT FROM authors_cursor INTO @name END
    deallocate authors_cursor
参考:
DBCC SHOWCONTIG (Transact-SQL) http://msdn.microsoft.com/zh-cn/library/ms175008(v=sql.90).aspx
DBCC DBREINDEX (Transact-SQL) http://msdn.microsoft.com/zh-cn/library/ms181671(v=sql.90).aspx