diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml new file mode 100644 index c34ca53..dc687f9 *** a/doc/src/sgml/maintenance.sgml --- b/doc/src/sgml/maintenance.sgml *************** analyze threshold = analyze base thresho *** 745,752 **** In some situations it is worthwhile to rebuild indexes periodically ! with the ! command. --- 745,753 ---- In some situations it is worthwhile to rebuild indexes periodically ! with the command or a series of individual ! rebuilding steps. ! *************** analyze threshold = analyze base thresho *** 772,777 **** --- 773,796 ---- (This consideration does not apply to non-B-tree indexes.) It might be worthwhile to reindex periodically just to improve access speed. + + + can be used safely and easily in all cases. + But since the command requires an exclusive table lock, it is + often preferable to execute an index rebuild with a sequence of + creation and replacement steps. Index types that support + with the CONCURRENTLY + option can instead be recreated that way. If that is successful and the + resulting index is valid, the original index can then be replaced by + the newly built one using combinations of + and . When an index is used to enforce + uniqueness or other constraints, may + also be necessary, to swap the existing constraint to one enforced by + the new index. Review this alternate, multiple step rebuild approach + very carefully before using it, as there are limitations on which + indexes can be reindexed this way, and errors you should detect and + handle correctly. + diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml new file mode 100644 index 01faa3a..9a6a683 *** a/doc/src/sgml/ref/create_index.sgml --- b/doc/src/sgml/ref/create_index.sgml *************** CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] *** 405,411 **** ! If a problem arises while scanning the table, such as a uniqueness violation in a unique index, the CREATE INDEX command will fail but leave behind an invalid index. This index will be ignored for querying purposes because it might be incomplete; --- 405,411 ---- ! If a problem arises while scanning the table, such as a deadlock or a uniqueness violation in a unique index, the CREATE INDEX command will fail but leave behind an invalid index. This index will be ignored for querying purposes because it might be incomplete;