Рекомендации по применению кластеров (1)
Кластеры обычно строятся для связанных таблиц, например, отношением «один ко многим».
Не стоит создавать кластер в следующих случаях:
если данные в КК этих таблиц часто обновляются;
изменение столбцов КК требует больше системных ресурсов, чем обновление некластеризованных данных (выигрыш от ускорения поиска данных меньше, чем затраты на перемещение строк);
Рекомендации по применению кластеров (2)
если часто требуется полный просмотр отдельной таблицы;
Полный просмотр индивидуальных таблиц кластера требует больше времени, чем просмотр раздельно хранящихся таблиц (физически требуется обратиться к большему числу блоков).
Если по отдельности некластеризованные таблицы занимают n1 и n2 блока, то вместе они будут занимать (n1+n2) блоков, и для полного просмотра каждой из них придётся обращаться к диску (n1+n2) раз.
Рекомендации по применению кластеров (3)
если суммарные данные таблиц с одним и тем же значением КК занимают больше одного блока данных;
Второй и последующие блоки для одного и того же значения КК выделяются не подряд, это вызывает частые перемещения считывающей головки диска и увеличение времени доступа к данным.
Для окончательного определения целесообразности создания кластера в конкретной ситуации ставят эксперименты и измеряют производительность БД на реальных данных и реальных запросах.
Общие замечания
Рассмотренные способы размещения и доступа к данным прозрачны для пользователей и приложений.
Кластеризация, хеширование и индексирование влияют на время обработки данных, но не требуют изменения программ и запросов.
Информация о методах размещения данных и методах доступа к данным хранится в словаре данных и используется СУБД при выполнении запросов.
Для кластеризованных и хешированных таблиц можно строить дополнительные индексы по полям, не входящим в КК и не являющимся ключом хеширования.