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

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

2009 年 10 月 27 日 tdtsh
このエントリーをはてなブックマークに追加
はてなブックマーク - SQL Server 2000 (2005, 2008でも多分可)でインデックスの再構築
Share on Facebook
Share on FriendFeed
Share on GREE
Share on reddit
Share on LinkedIn

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