Рубрика:
Базы данных /
Инструменты
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВАЛЕРИЙ МИХЕИЧЕВ, эксперт Oracle, СПАО «Ингосстрах», Valery.Mikheitchev@ingos.ru
Опыт работы в Oracle с таблицами, содержащими большие LOB-столбцы
Рассмотрим вопросы работы в Oracle с таблицами, в которых имеются большие LOB-столбцы. Особое внимание уделим особенностям интервального секционирования в Oracle 11g и Oracle 12c для таблиц, содержащих LOB-столбцы
Существует несколько типов LOB-объектов:
- BLOB – двоичный большой объект;
- CLOB – символьный большой объект;
- NCLOB – национальный символьный большой объект;
- BFILE – внешний двоичный файл.
LOB-объекты делятся на внутренние и внешние.
Внутренние большие объекты Internal LOB – хранятся в базах данных (БД), к ним относятся BLOB, CLOB и NCLOB. Внутренние большие объекты могут быть постоянными или временными:
- постоянные LOB – создаются как столбцы таблицы БД командой Create таблицы, при этом данные LOB могут храниться как в самой таблице, так и вне таблицы;
- временные Temporary LOB – создаются для использования только в пределах конкретного приложения. Для создания временного LOB используется процедура dbms_lob.createtemporary.
Внешние большие объекты External LOB – вид данных, который хранится в файлах операционной системы, вне базы данных, а в базе данных на них хранятся ссылки (локаторы). Внешние LOB используют тип данных BFILE.
Каждый LOB-объект состоит из двух частей:
- локатор-указатель, который специфицирует местонахождение контента (т.е. местонахождение данных LOB-объекта);
- контент – набор двоичных или символьных байтов, составляющих LOB.
Инструментом работы с LOB выступает пакет DBMS_LOB. Он предоставляет методы манипулирования внутренними и внешними LOB. В данной статье рассматриваются только постоянные внутренние LOB-объекты.
Сегменты LOB-объектов Oracle
Для объектов Oracle, таких как таблица, индекс, LOB-объект и др., создается структура, называемая сегментом. При этом имеется особенность: при создании сегментов для таблицы и индекса создается один сегмент, в то же время длякаждого LOB-столбца таблицы создается не один, а два сегмента. Один сегмент – это LOB-сегмент для хранения данных и второй – это LOB-индексный сегмент. LOB-индексный сегмент создается автоматически при создании LOB-сегмента и служит для навигации по LOB-сегменту. Увидеть созданные сегменты объектов Oracle (при наличии данных) позволяет Oracle представление DBA_SEGMENTS. Это представление замечательно тем, что можно увидеть (в том числе в текущий момент) число байт в объекте Oracle.
Статью целиком читайте в журнале «Системный администратор», №4 за 2017 г. на страницах 54-59.
PDF-версию данного номера можно приобрести в нашем магазине.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|