Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Входные данные. Имена таблиц с учетом разделов

Управление разделением

Имена таблиц с учетом разделов

Разделенные индексы

Размещение строк в разделах данных

Разделенные таблицы

Разделение данных

Установки по умолчанию для табличных областей

Установки по умолчанию для пользователей

Установки по умолчанию для хранения объектов

В большинстве случаев параметры хранения объектов не являются обязательными; они позволяют управлять хранением информации каждого объекта. Для параметров хранения всегда существуют уста­новки по умолчанию. Далее показано, как задавать такие установки для объектов хранения данных базы данных Oracle.

 

Для каждого пользователя можно установить табличную область по умолчанию и временную табличную область. Когда пользователь создает новый объект базы данных и не указывает для него табличную область явно, Oracle сохраняет новый объект в табличной области по умолчанию для этого пользователя; Во временной табличной области пользователя Oracle, по мере необходимости, выделяет временное рабочее пространство для его SQL-операторов.

 

Если при создании в табличной области таблицы, кластера данных, индекса или моментального снимка не указываются параметры экстентов нового объекта, то для сегмента этого объекта устанавли­ваются значения, которые были заданы по умолчанию для этой табличной области. Для каждой таб­личной области можно указать по умолчанию значения:

• Размеров начального и последующих экстентов сегмента

• Минимального и максимального числа экстентов в сегменте

• Коэффициента возрастания последующих экстснтон сегмента.

 

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

• Таблица вырастает настолько, что для работы с ней нужно время, превышающее разрсшенный интервал.

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

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

Чтобы уменьшить вероятность возникновения проблем такого рода в Огас1е8 поддерживается раз­деление таблиц и индексов.

 

В Oracle8 можно разбивать области хранения таблиц на более мелкие единицы дисковой памяти, называемые разделами {partitions).

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

 

 

В Oracle8 применяются таблицы, разделенные по диапазонам (range partitioned tables). Значение ключа разделов для какой-либо строки определяет, в каком разделе она хранится. Ключ разделов (partition key) таблицы — это столбец или упорядоченный набор столбцов (до 16), характеризующий физическое раз­деление строк этой таблицы. Чтобы предотвратить нерациональное расходование ресурсов при пере­носе строк из раздела в раздел, приложениям никогда не следует обновлять данные, содержащиеся в ключе разделов таблицы.

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

 

Чтобы проиллюстрировать размещение строк в таблицах, разделенных по диапазонам, посмотрим, xто происходит, когда приложение вносит в таблицу запись о клиенте, живущем в штате Арканзас (AR — Arkansas). Oracle сравнивает первый символ кода штата AR со значением, определяющим первый раздел таблицы, P1. А меньше Н, поэтому новая строка помещается в раздел P1, который физически хранится в файле данных табличной области DATA01. Аналогично, когда вводятся данные о новом клиенте из Ныо-Джерси (NJ —New Jersey), запись о новом клиенте размещается в разделе P3 (NJ мень­ше NM), который физически хранится, в файле данных табличной области DATA03 и т.д.

 

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

 

В Oracle8 предлагается уникальная синтаксическая конструкция для команд, называемая име­нами таблиц с учетом разделов, которая, может использоваться разработчиками приложений при создании SQL-операторов, работающих с разделенными таблицами. Имя таблицы с учетом разделов (partition-extended table name) — это простой, но эффективный синтаксис, позволяющий при­ложениям просматривать как таблицы, так и их разделы. Например, с помощью следующего' запроса из нужного раздела таблицы выбираются все клиенты, проживающие в Калифорнии (СА - California):

SELECT * FROM usa.customers PARTITION (p1);

 

Хотя такие имена могут повысить производительность некоторых SQL-операторов, разработчикам следует внимательнее подходить к использованию этого синтаксиса в SQL-опсраторах приложений.

Дело в том, что в именах таблиц с учетом разделов указываются характеристики физического хранения табличных данных. Вообще говоря, не стоит использовать в программах приложений SQL-операторы, которые создают взаимосвязи между физическими областями диска и таблицами, — такие взаимосвязи могут привести к прекращению функционирования приложения, если впоследствии физическое место хранения одной из таблиц изменится.

Если имена таблиц с учетом разделов при разработке приложения все же применяются, не забывайте, что такие имена являются расширением ANSI/ISO (языка SQL), вводимым в Oracle. Когда нужно использовать имена таблиц с учетом разделов и'при этом сохранить переносимость приложения, со­здавайте представления с указанием таких имен и. применяйте, для этих., представлений стандартные SQL-операторы. Например:

 

CREATE VIEW v1 AS SELECT * FROM t1 PARTITION (pi)

SELECT* FROM v1;

 

Oracle8 полностью поддерживает работу с разделенными таблицами и индексами. Например:

• Можно преобразовать неразделенную таблицу в разделенную, и наоборот.

• Можно добавить новые разделы таблицы к уже существующим.

• Можно разбивать и объединять разделы, расположенные в середине таблицы.

• Можно удалять разделы таблицы, не содержащие строк.

• Можно укорачивать отдельные разделы таблицы, а не всю таблицу в целом.

 

 

Глава 22. Основные компоненты SQL*Loader

Для SQL*Loader необходима входная информация двух типов: внешние данные, которые могут распола­гаться на диске или ленте, и управляющая информация (содержащаяся в управляющем файле), описываю­щая входные данные, а также таблицы и столбцы, в которые осуществляется загрузка. Выходные данные включают таблицы Oracle, файл протокола, файл отсеянных и файл отвергнутых записей. От вывода неко­торых файлов можно отказаться.

 

 

 

SQL*Loader может обрабатывать практически любые типы файлов данных и поддерживает "родные" типы данных почти всех платформ. Данные обычно читаются из одного или нескольких файлов данных; однако данные также могут быть помещены в управляющий файл после управляющей информации. Файл данных может иметь фиксированный или переменный формат.

В файле фиксированного формата данные находятся в записях фиксированной длины, которые имеют одинаковый формат. Поле данных определено позициями начала и конца поля в записи и содержит данные одного типа и одной длины во всех записях файла. Двоичные данные должны загружаться из файла фиксированного формата, так как SQL*Loader не может воспринимать их в переменном формате.

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

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

Для увеличения производительности, используйте записи фиксированной длины. SQL*Loader тратит на обработку файла переменного формата приблизительно на 50 процентов времени больше, по сравнению с файлом фиксированного формата.

С помощью средства поддержки национальных языков (National Language Support — NLS) SQL*Loader может преобразовать данные с различными схемами кодирования символов, других компьютерных платформ и других стран. Например, SQL*Loader может загрузить файл EBCDIC в базу данных на ASCII платформе или файл с азиатским символьным набором — в базу данных с американским символьным набором.

<== предыдущая лекция | следующая лекция ==>
Параметры для экстентов | Физические записи и логические записи
Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 602; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.