重建資料庫表所有索引

2021-07-03 03:08:30 字數 1783 閱讀 6885

/***********************

重建資料庫表所有索引

2006-06-12

先選擇要修復的資料庫

***********************/

declare @name nvarchar(255)

--所有使用者表游標

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

endclose authors_cursor

deallocate authors_cursor

go/***********************

重建資料庫表所有索引(sql2005之後版本)

2012-06-12

先選擇要修復的資料庫

***********************/

declare @name nvarchar(255)

--所有使用者表游標

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

print '正在重建表['+@name+']索引'   

--修復資料表索引

exec ('alter index  all on ['+@name+'] rebuild with (fillfactor = 80, sort_in_tempdb = on,statistics_norecompute = on)');

-- get the next author.

fetch next from authors_cursor into @name

endclose authors_cursor

deallocate authors_cursor

go/***********************

重建指定表的索引

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)

重建資料庫表所有索引

重建資料庫表所有索引 2006 06 12 先選擇要修復的資料庫 declare name varchar 100 所有使用者表游標 declare authors cursor cursor for select name from sysobjects where xtype u order b...

重建ORACLE資料庫索引

declare str varchar2 400 begin 重建oracle索引 for tmp idx in select tablespace name,owner,table name,index name from all indexes where owner hnacms and te...

SQL 建立索引,遍歷資料庫所有表

檢視資料庫表占用的磁碟空間 執行儲存過程 exec sp spaceused tablename 建立聚簇索引 create clustered index indexname on tablename columnname 不允許有重覆記錄 create index clustered index...