Интервальное секционирование 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Интервальное секционирование



При загрузке новых данных в таблицу возникает необходимость в постоянном ручном расщеплении секции maxvalue, поэтому был создан механизм, позволяющий автоматически создавать новые секции для нового диапазона ключей.

Для интервального секционирования используется единая диапазонная секция для начального диапазона (точка перехода). Секции для новых значений ключа будут создаваться автоматически (по первой операции INSERT, не попавшей в диапазоны существующих секций).

Интервальное секционирование является расширенной реализацией диапазонного, но ключ секционирования может быть только одностолбцовым, типа DATE или NUMBER, стотбцы не могут содержать значение NULL и в секциях таблицы должна быть хотя бы одна диапазонная секция (maxvalue не допускается, иначе теряется смысл интервального секционирования).

Хэш-секционирование

Хэш-секционирование позволяет равномерно распределить строки между секциями, т.е. при помощи встроенной функции хэширования “разбросать” строки по разным секциям и сделать эти секции равновеликими.

Равномерное распределение данных по разным дискам позволяет распределить нагрузку по вводу-выводу между дисками, избежать перегруженности отдельных блоков (например, последнего табличного блока при вставках строк или крайнего индексного блока при монотонном увеличении ключа), очень важная возможность при использовании кластерных конфигураций (RAC), организовать эффективную параллельную обработку данных путем одновременного доступа к дискам (особенно при эквисекционировании объектов).

Списочное секционирование

Списочное секционирование позволяет разбить таблицу по списку дискретных значений.

Ключ списочного секционирования может быть только одностолбцовым, каждое ключевое значение может быть указано только в одном списке, слово DEFAULT описывает все значения, не попавшие в другие списки, NULL может быть ключевым значением.

Списочные секции можно добавить, при этом должна отсутствовать секция DEFAULT, в противном случае прибегают к рассечению секции DEFAULT. Списочные секции можно удалить, слить, добавить/сократить список ключей.

Композитное секционирование

При секционировании большой таблицы сами секции могут оказаться достаточно крупными. Такие секции могут секционироваться по другому критерию секционирования. Такое двухуровневое секционирование называется композитным (допускается 2 уровня секционирования(секции и подсекции)).

При композитном секционировании реальные сегменты хранения есть только у подсекций (секции в этом случае носят только логический, "объединительный" характер).

Как правило, верхний уровень секционирования выбирается из соображений управляемости БД, уровень же подсекции обычно выбирается из соображений производительности.

Эквисекционирование

Объекты эквисекционированы, если они секционированы одинаковым образом (общий метод секционирования, равное количество секций, те же границы, количество, порядок и типы столбцов в ключе). Объекты могут быть эквисекционированы на одном или разных уровнях(секции, подсекции).

Идентичность секций или подсекций позволяет соединять их попарно (параллельная попарная обработка может выполняться достаточно быстро, так называемые "Partition-Wise Joins", минимизируется обмен данными между параллельными процессами и узлами в RAC), локализованность проблем при управлении и сбоях.

Эквисекционирование двух таблиц возможно только при общем ключе секционирования, часто вынуждает вносить ключ (столбцы) секционирования в дочернюю таблицу искусственным образом, только для целей эквисекционирования главной и подчиненной таблиц.

Секционирование по ссылке

Ссылочное секционирование выполняется только, если таблицы явным образом связаны ссылочными ограничениями целостности (метод и ключ секционирования подчиненной таблицы наследуются из главной). Манипуляции с секциями главной таблицы автоматически отражаются на секциях подчиненной, наблюдается каскадный эффект, если описана цепочка связанных и секционируемых по ссылке таблиц (ссылочное секционирование тоже наследуется).

Секционирование по виртуальному столбцу

Виртуальные столбцы – столбцы в таблице, значения в которых вычисляются динамически, "на лету", при обращении к таблице (данные в таблице физически не хранятся).

Системное секционирование

Системное секционирование -- "беcключевое" секционирование, где секционированием данных управляет приложение, а не сама СУБД, как в других видах секционирования.


 

Pipe

Пакет DBMS_PIPE

q Позволяет двум или более сеансам, подключенным к одному и тому же экземпляру базы данных, обмениваться сообщениями с помощью канала.

q Каналы являются асинхронными – они действуют независимо от транзакций. Поэтому не существует способа отменить сообщение, посланное в канал, даже если сеанс, который его послал, выполнил ROLLBACK.

Канал автоматически организуется при первом обращении к нему, и удаляется, когда больше не содержит данных

• Сообщения посылаются в канал отправителем, который сначала упаковывает их в буфер, а затем посылает буфер.

Приемник получает буфер и распаковывает сообщение.

q Публичные (Public) – канал доступен всем пользователям, которые знают название канала.

 

q Частные (Private) – канал доступен только создателю канала, сессии с тем же USER_ID, что и у создателя канала, пользователям, подключенным как SYSDBA.

q CREATE_PIPE – создание канала

q NEXT_ITEM_TYPE – проверяет тип следующего сообщения

q PACK_MESSAGE – помещает элементы в локальный буфер

q PURGE – очистка содержимого канала

q RECEIVE_MESSAGE – прием сообщение и копирование его в локальный буфер

q REMOVE_PIPE – удаление канала

q SEND_MESSAGE – отправка сообщений в канал

q UNIQUE_SESSION_NAME – получает уникальное имя среди всех сессий, соедененных в данный момент с БД.

q UNPACK_MESSAGE – извлечение элемента из локального буфера


 

Oracle Stream

Oracle Streams – это средство СУБД, позволяющее переносить данные, транзакции и события в потоке данных внутри одной или между базами данных. Это более поздняя, чем "обычная" репликация (репликация на основе материализованных представлений)), модель организации непрерывного переноса данных как внутри, так и между базами данных.

Oracle Streams предоставляет набор элементов, которые позволяют пользователю управлять:

· тем какую информацию помещать в поток

· как должен «течь» поток

· как он должен маршрутизироваться с одно сервера на другой

· что должно происходить, когда поток приходит на сервер

· где он должен прерываться.

Oracle Streams применяется в качестве решения для различных областей:

· Репликация

· Очереди сообщений

· Загрузка хранилищ данных

Технически потоки Oracle Streams опираются на созданный независимо и ранее аппарат организации очередей передачи сообщений, известный под названием Oracle Advanced Queuing,а также используют Dblink для передачи информации между исходной и целевой базами данных.

В отличие от "обычной" репликации Oracle Streams не требует заведения особых структур в БД (журналов таблиц, materialized views). Репликация в Oracle Streams основана на обработке информации из журнала БД.

основных компонента Oracle Streams:

1. Capture – процесс сбора данных на источнике

2. Propagation- процесс передачи данных от источника к целевой базе данных

3. Apply – процесс применения изменений в целевой базе данных

Capture(фоновый процесс)

Сбор осуществляется двумя способами:

· Неявный сбор. Серверный процесс сбора собирает DML и DDL события в исходной базе данных непосредственно из журналов (redo log), либо с помощью горячего «раскапывания» (hot mining), либо, при необходимости, из архивных журналов (archive log). После извлечения данных процесс сбора форматирует их в Logical Change Record (LCR) и помещает в область распространения для дальнейшей обработки. Процесс сбора может фильтровать LCRы по заданным правилам. Таким образом буду собираться изменения только заданных объектов.

· Явный сбор. Позволяет приложению явным образом сгенерировать сообщение и поместить его в область хранения. Эти сообщения могут быть отформатированы как LCR (дает возможность автоматически применить их процессом применения (apply process), либо как пользовательские сообщения, предназначенные для потребления другим пользовательским приложением.

Capture:

1. Работает на стороне исходной БД

2. Работают на основе правил;

3. Просматривает средствами LogMiner журналы повтора и архив;

4.Выбирает из журналов изменения в исходной
БД;

5. Формирует логическую запись об изменении, Logical Change Record (LCR);

6. Помещает LCR в качестве события в очередь
Streams Advanced Queuing (SAQ).



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 469; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.31.159 (0.016 с.)