Индексы на базе В*-деревьев



бет4/10
Дата01.11.2022
өлшемі239.92 Kb.
#463783
1   2   3   4   5   6   7   8   9   10
Все лекции (1) (1) (1)

Секционирование


С редакцией Enterprise Edition для версий Oracle8 и выше можно приобрести опцию секционирования Partitioning Option. Как следует из названия, это механизм разбиения таблиц и индексов на секции, находящиеся в разных физических областях хранения. Разбиение структуры данных на секции производится на основе значений в столбцах таблицы. Можно организовать секцию, содержащую строки со значением столбца в определенных диапазонах (часто - в диапазонах дат) или сзаданным значением хеш-функции (которая возвращает результат некоего вычисления над значениями из одного или нескольких столбцов). В Oracle9i можно также определить секцию списком значений, что бывает особенно полезно при работе с хранилищами данных. В Oracle Database llg добавлен механизм интервального секционирования, позволяющий автоматически порождать новую секцию, если вставляемые данные не попадают ни в один из имеющихся диапазонов.
Можно также организовать двухуровневое секционирование с помощью механизма составных секций, используя сочетание разных методов разбиения. До версии Oracle Database llg допускалось только сочетание секционирования по диапазону и по значению хеш-функции. Но теперь секционирование по списку значений ключа можно сочетать с секционированием по списку, по диапазону и по значению хеш- функции, а секционирование по диапазону - с другим способом секционирования по диапазону.
Oracle использует секции для повышения производительности двумя способами:

  • не обращается к тем секциям, в которых заведомо нет данных, удовлетворяющих запросу;

  • если все данные в некоторой секции удовлетворяют части указанного в запросе условия WHERE, то Oracle просто отбирает все строки из этой секции, не вычисляя условие для каждой строки.

Секционированные таблицы особенно полезны в хранилищах данных, когда данные можно разбить по временным периодам.
Не менее важен тот факт, что секционирование существенно сокращает область действия операций обслуживания и повышает доступность данных. Все операции обслуживания
- резервное копирование, восстановление, загрузку - можно выполнять над одной секцией. Та- кая гибкость позволяет обрабатывать очень большие объемы данных, и при этом обслуживание занимает разумное время. Кроме того, если по какой-то причине вы должны восстановить одну секцию таблицы, то остальные ее секции в это время могут оставаться оперативно доступными. Если вам доводилось работать с другими СУБД, не располагающими механизмом секционирования, то, возможно, вы пытались реализовать подобную функциональность, разбивая одну таблицу на несколько и далее пользуясь SQL-конструкцией UNION для просмотра данных из всех таблиц разом. Секционированные таблицы дают все преимущества идентичных таблиц, объединяемых с помощью UNION, но без сопряженных с такой
реализацией сложностей.
Для извлечения максимума пользы из секционирования иногда имеет смысл одинаково секционировать таблицу и индекс над ней, так чтобы в секциях таблицы и индекса оказались одни и те же строки. Это называется эквисекционированием и может быть реализовано автоматически, если при построении индекса над секционированной таблицей указать слово LOCAL. Локальные индексы проще в обслуживании, поскольку такие стандартные операции, как удаление секции, прозрачно применяются к секциям таблицы и индекса.
Oracle продолжает развивать функциональность механизма секционирования. В версии Oracle Database 10g* Release 2 можно оперативно реорганизовывать отдельные секции, максимальное число секций увеличено с 64 Кбайт - 1 до 128 Кбайт - 1 и улучшена оптимизация запросов с отсечением ненужных секций.
В Oracle Database 11# алгоритм отсечения секций снова был усовершенствован. Кроме того, теперь можно управлять секционированием из приложения и добавлен консультант Partition Advisor, который помогает понять, сможет ли секционирование повысить производительность базы данных.
Подробную информацию о структуре секционированных таблиц и связанных с ними ограничениях вы найдете в документации Oracle.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет