在数据库使用中,由于数据的导入导出,以及历史数据的积累,数据库的性能逐渐下降,有时还会出现索引标号不存在的问题, 这时就应该对数据库进行重建索引,以提高性能。
---重建整个数据库的索引proc (just for Sql Server2000)
create procedure ReindexAllTable(@dbname sysname)
as
if object_id('tempdb..#tableT') is not null
drop table #tableT
create table #tableT(tn sysname)
insert into #tableT exec ('select name from '+@dbname+'..sysobjects where xtype = '+''''+'U'+'''')
declare tableCrusor cursor for select tn from #tableT
open tableCrusor
declare @table sysname
fetch next from tableCrusor into @table
while @@fetch_status = 0
begin
set @table = @dbname+'.dbo.'+@table
dbcc dbreindex (@table)
fetch next from tableCrusor into @table
end
close tableCrusor
deallocate tableCrusor