ホーム > sqlserver > SQL Server 2000 (2005, 2008でも多分可)でインデックスの再構築

SQL Server 2000 (2005, 2008でも多分可)でインデックスの再構築

2009 年 10 月 27 日 tdtsh

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 タグ:
コメントは受け付けていません。