SQL Server 2000 (2005, 2008でも多分可)でインデックスの再構築
2009 年 10 月 27 日
SQL Server 2000時代に、インデックスの再構築といえば
dbcc dbreindex
でしたが、このコマンドは将来なくなる様ですね。
かわりに、alter index rebuild を使えとの事。
rebuild句が、dbreindexと同じ機能です。
all on を指定しないと、非クラスタ化インデックスは再構築されないそうな。
alter index all on テーブル名 rebuild
参考サイトを元に、新たなストアドを作った。
USE MASTER
GO
create procedure sp_reindex as
DECLARE @tablename varchar(30)
DECLARE tables CURSOR FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables
FETCH NEXT FROM tables INTO @tablename
WHILE (@@fetch_status <> -1)
BEGIN
Execute ('ALTER INDEX ALL ON' + @tablename + ' REBUILD')
FETCH NEXT FROM tables INTO @tablename
END
DEALLOCATE tables
GO
USE YOUR_DATABASE
exec SP_REINDEX
カテゴリー: sqlserver