Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Использование кластеризацииКластер создаётся с помощью команды CREATE CLUSTER: create cluster <имя_кластера> (<имя_поля1> <тип_поля1> [,<имя_поля2> <тип_поля2> ,…] ); Здесь в скобках перечисляются поля кластерного ключа. Затем создаются таб- лицы в кластере: create table <имя_таблицы> (<список полей таблицы>) cluster <имя_кластера> (<список полей КК>); Количество и типы полей кластерного ключа таблицы должны совпадать с ко- личеством и типами полей КК в определении кластера, а имена полей могут быть другими. Типы данных в <списке полей КК> для таблицы не указываются. Перед занесением данных в таблицы кластера необходимо создать кла- стерныйиндекс– индекс по кластерному ключу: create index <имя_индекса> on cluster <имя_кластера>; Поля для индексирования не указываются, потому что кластерный индекс со- здаётся по полям кластерного ключа. В отличие от обычного индекса в кла- стерном индексе null-значения индексируются. Кластеры обычно строятся для таблиц, часто используемых в соединении друг с другом, например, связанных отношением "один-ко-многим". Не стоит создавать кластер в следующих случаях: Если данные в кластерном ключе этих таблиц часто обновляются. Изменение столбцов кластерного ключа требует гораздо больше системных ресурсов, чем обновление некластеризованных данных, так что выигрыш от ускорения поиска данных оказывается меньше, чем затраты на перемещение строк. Если часто требуется полный просмотр отдельной таблицы. Полный просмотр индивидуальных таблиц кластера требует больше време- ни, чем просмотр раздельно хранящихся таблиц, т.к. физически требуется обратиться к большему числу блоков. Если по отдельности некластеризо- ванные таблицы занимают n1 и n2 блока соответственно, то вместе они бу- дут занимать (n1+n2) блоков, и для полного просмотра каждой из них при- дётся обращаться к диску (n1+n2) раз. Если суммарные данные таблиц с одним и тем же значением кластерного ключа занимают больше одного блока данных. Второй и последующие блоки для одного и того же значения кластерного ключа выделяются не подряд, что вызывает частые перемещения считыва- ющей головки диска и увеличение времени доступа к данным. Часто для окончательного определения целесообразности создания кла- стера в конкретной ситуации ставят эксперименты и измеряют производитель- ность БД на реальных данных и реальных запросах. Обратите вниманиеРассмотренные способы размещения и доступа к данным прозрачны для пользователей и приложений. То есть кластеризация, хеширование и индекси- рование оказывают влияние на время обработки данных, но не требуют изме- нения программ и запросов. Информация о методах размещения данных и ме- тодах доступа к данным хранится в словаре-справочнике данных и использует- ся системой при выполнении запросов. Для кластеризованных и хешированных таблиц можно строить дополни- тельные индексы по полям, не входящим в кластерный ключ и не являющимся ключом хеширования. Это также относится к преимуществам кластеризации и хеширования и позволяет устранить некоторые присущие им недостатки. "Ктохочетработать–ищетсредства,ктонехочет–причины". С.П. Королёв, советский ученый и конструктор в области космонавтики |