ALTER INDEX は索引(インデックス)を再構築したり、索引の名前を変更したり、索引を使用禁止にするSQL文である。
テーブルに行を挿入したり、削除したりを繰り返すと、インデックスが断片化を起こす。インデックスの断片化により、問い合わせの速度が遅くなってくる。これを解消するには、インデックスの再構築を行う。
ALTER INDEX [schema.]name REBUILD
スキーマ名の指定を省略した場合は、自分のスキーマが対象となる。
SQL> ALTER INDEX tsuka.example REBUILD;
ALTER INDEX [schema.]name RENAME TO new_name
スキーマ名の指定を省略した場合は、自分のスキーマが対象となる。
SQL> ALTER INDEX tsuka.example RENAME TO example2;
SQL> ALTER INDEX example RENAME TO example2;
ALTER INDEX [schema.]name UNUSABLE
スキーマ名の指定を省略した場合は、自分のスキーマが対象となる。
SQL> ALTER INDEX tsuka.example UNUSABLE;
SQL> ALTER INDEX example UNUSABLE;
自分のスキーマ内にあるインデックスを再構築するには、とくに権限は必要ない。
他のスキーマ内にあるインデックスを再構築するには、ALTER ANY INDEXシステム権限が必要である。
MySQLにALTER INDEX文は存在しない。
PostgreSQLでインデックスの名前を変更する。
ALTER INDEX name RENAME TO new_name
ALTER INDEX { index_name | ALL } ON object REORGANIZE
[ PARTITION = partition_number ]
[ WITH ( reorganize_option ) ]
ALTER INDEX { index_name | ALL } ON object SET (set_index_option[ ,...n ])
ALTER INDEX { index_name | ALL } ON object RESUME [ WITH ( resumable_index_options, [...n] ) ]
ALTER INDEX { index_name | ALL } ON object PAUSE
ALTER INDEX { index_name | ALL } ON object ABORT
ALTER INDEX { index_name | ALL } ON object REBUILD
[ PARTITION = ALL ]
[ WITH ( rebuild_index_option) [ ,...n ] ]
ALTER INDEX { index_name | ALL } ON object REBUILD
[ PARTITION = partition_number ]
[ WITH ( single_partition_rebuild_index_option ) [ ,...n ] ]
ALTER INDEX { index_name | ALL } ON object DISABLE
Microsoft 2023. ALTER INDEX (Transact-SQL) - SQL Server