ALTER INDEXは索引(インデックス)を再構築するSQL文である。テーブルに行を挿入したり、削除したりを繰り返すと、インデックスが断片化を起こす。インデックスの断片化により、問い合わせの速度が遅くなってくる。これを解消するには、インデックスの再構築を行う。
Oracle Database における ALTER INDEX 文の構文を以下に示す。
ALTER INDEX [schema.]name { REBUILD | RENAME TO new_name | UNUSABLE }
SQL> ALTER INDEX tsuka.example REBUILD;
SQL> ALTER INDEX example REBUILD;
SQL> ALTER INDEX example RENAME TO example2;
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 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
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
Microsoft 2023. ALTER INDEX (Transact-SQL) - SQL Server