指定したテーブルのインデックスを再編成(REORGANIZE)する方法 SQL Server
1929 ワード
環境
SQL Server 2012
参考
前回の以下の投稿に若干手を加えて作成しました。
SQL Server の指定したテーブルのインデックス名を取得する方法
ストアドプロシージャを実装する
CREATE PROCEDURE [dbo].[sp_INDEX_REORGANIZE]
@schema_name VARCHAR(MAX),
@table_name VARCHAR(MAX)
AS
BEGIN
DECLARE [cur_index_name] CURSOR FOR
SELECT I.name AS IndexName
FROM sys.objects AS O
INNER JOIN sys.schemas AS S
ON O.schema_id = S.schema_id
INNER JOIN sys.indexes AS I
ON O.object_id = I.object_id
WHERE S.NAME = @schema_name
AND O.name = @table_name
AND I.is_disabled = 0;
OPEN [cur_index_name];
DECLARE @index_name VARCHAR(MAX);
DECLARE @sql VARCHAR(MAX);
FETCH NEXT FROM [cur_index_name] INTO
@index_name;
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @sql = 'ALTER INDEX ' + @index_name + ' ON ' + @schema_name + N'.' + @table_name + ' REORGANIZE';
PRINT @sql;
EXECUTE (@sql);
FETCH NEXT FROM [cur_index_name] INTO
@index_name;
END
CLOSE [cur_index_name]
DEALLOCATE [cur_index_name]
END
ストアドプロシージャを実行する
DECLARE @schema_name VARCHAR(MAX);
SET @schema_name = 'dbo';
DECLARE @table_name VARCHAR(MAX);
SET @table_name = 'ITEM';
EXECUTE sp_INDEX_REORGANIZE @schema_name, @table_name;
Author And Source
この問題について(指定したテーブルのインデックスを再編成(REORGANIZE)する方法 SQL Server), 我々は、より多くの情報をここで見つけました https://qiita.com/azumabashi/items/95918a49488e4311c643著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .