Самоучитель по SQL-сервер в Linux



CLUSTER

Кластеризация таблицы по заданному индексу.

Синтаксис

CLUSTER индекс ON таблица

Параметры

  • индекс. Имя индекса, используемого при кластеризации.
  • таблица. Имя таблицы, для которой производится кластеризация.

Результаты

  • CLUSTER. Сообщение выдается при успешной кластеризации таблицы.
  • ERROR: CLUSTER: "индекс" is not an index for table "таблица". Ошибка — попытка кластеризации индекса, не относящегося к заданной таблице.
  • ERROR: Index "индекс" does not exist. Ошибка — индексе заданным именем не найден в текущей базе данных.
  • ERROR: Relation "таблица" does not exist. Ошибка — таблица с заданным именем не найдена в текущей базе данных.
  • ERROR: Relation "производная_таблица" Inherits from "таблица". Ошибка — у заданной таблицы имеется производная таблица.

Описание

Команда CLUSTER производит кластеризацию таблицы по заданному индексу. Таблица должна существовать, индекс также должен существовать и относиться к указанной таблице.

В процессе кластеризации содержимое таблицы упорядочивается так, чтобы повысить эффективность поиска по конкретному индексу. Кластеризация является «разовой» операцией; чтобы провести повторную кластеризацию, команду CLUSTER необходимо выполнить заново.

ВНИМАНИЕ

Во время кластеризации записи таблицы копируются во временную таблицу в порядке, определяемом заданным индексом, после чего временная таблица переименовывается в исходную. Таким образом, кластеризация приводит к уничтожению остальных индексов.

Пример

Следующая команда производит кластеризацию таблицы subjects на базе индекса

subjects_pkey:

booktown=# CLUSTER subjects_pkey ON subjects;

CLUSTER