ПредишенСледващото

Подобряване на ефективността на заявките: Разделяне

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

В много таблиците в базата данни се съхраняват огромни количества данни. По-големият размер на масата, е необходимо повече време за някои операции в редовете на пробите, посочени в таблицата, и да изпълнява някои администратор база данни функции. Например, за архивиране и възстановяване. Големи по размер индексирани маси също са големи индекси, които изискват много време за базата данни, за да работят с тях.

Разделяне (разделяне) - е метод за маси физически разпространение и индекси между две или повече tablespaces, в зависимост от стойностите на основните колони на таблици, за да се повиши ефективността на / O операции I. Подробности маса намира в отделна таблица пространство. Ще се обадя раздела за маса. Разделяне също така подобрява архивиране и възстановяване на ефективността от изпълнението на тези задачи с по-малко данни. Дискусия за създаване на пространство за таблици отделна част от следващата глава ще бъде посветен на на. За разбиране на материала, е достатъчно да се знае, че предварително определен име парче памет на един или повече дискове, които могат да бъдат достъпни в SQL изявления от името си.

При изпълнението на разделяне важно понятие е колона от таблицата, по отношение на ценностите, които базата данни ще направят физическото разделяне на таблицата в различни пространства за таблици за твърди дискове. В тази графа се нарича разделящ ключ (дял ключ).

В Oracle Database поддържа няколко вида разделяне. гама разделяне, разделяне хеш. композитен разделяне. както и различни видове разделителни индекси.

Range разделяне

Разделяне диапазон (обхват разделяне) означава редове разпределение маси на различни предварително дефинирани tablespaces в зависимост от ключа за делба. Достъп до такава таблица, както и всяка друга, се извършва от името на и достъп до секциите, разположени във всяка таблици. могат да бъдат получени поотделно. Например, една таблица, съдържаща финансовите тримесечните отчети на организацията, може да бъде разделена по дата, така че отчети за всяко тримесечие ще се съхраняват в отделна таблица пространство. При тази организация секциите за данни само една четвърт ще бъдат избрани от пространство за таблици, което ще увеличи ефективността на базата данни като цяло.

Разделяне на редица базирани на подредбата на реда в секциите на масата (tablespaces) на базата на ключови колони стойност за делба. Концептуално гама маса се разделя, разположени както на фиг. 11.2 в примера по-долу. За да създадете разделена таблица с помощта на SQL Създаване на таблица команда с предложение за разпределението. В ключа за разделяне на база данни Oracle не може да бъде от тип LONG.

Знайте, Intuit, лекция, създаване на физически модел на базата данни


Фиг. 11.2. Пример разделяне podiapazonu

Пример. Помислете за системата за обработка на поръчката. Да предположим, че има Продажбите на маса. който съхранява данни за броя, времето и разходите за продажби за всеки клиент. Дизайнерът на базата данни може да използва диапазон разделяне, а именно - на блока да представлява тази таблица в базата данни. Да приемем, че ние сме четири предварително дефинирани пространства за таблици с имена ts_01, ts_02, ts_03, ts_04. разпределени на четири диска, както е показано на фигурата по-долу.

Фрагмент скрипт таблицата по-долу дефинира продажбите с физическото разположение на секциите, както е показано по-горе:

За достъп до редовете в таблицата намира в специален раздел, научете повече за продажбите през третото тримесечие, то е възможно да се използва SELECT изявление. както е показано по-долу:

Както можем да видим, че трябва да укажете опцията за дял (име раздел) след името в ОТ клауза на масата.

Администраторът на базата данни може лесно да изтриете, добавите, се движат, се съборят, да се съкрати и редактиране на раздел с помощта на командата ALTER TABLE. Премахване на отделен раздел може да бъде и чрез премахване на съответната му пространство за таблици.

Hash разделяне

Hash разделяне (хеш разделяне) означава равномерно разпределение на линии на масата, определена от пространства за таблици в зависимост от ключа на разпределение. който в този случай се сегментира. Този вид разделяне е удобно да се използва за редовете, в които разпределението на дяловете ключова ценност е неравномерно или лошо струпани. Ако проектантът на базата данни решава да създаде хеш-разделена таблица, тя трябва да е достатъчно, за да го представя точно с размерите на тази таблица като хашиш, вграден в алгоритмите за бази данни на Oracle, използвани за изчисляване на размера на позицията на линия в страницата на физическата база данни. Неправилно определяне на големината на таблицата може да доведе до голям брой сблъсъци, т.е. да удари линии с различни стойности за една и съща страница ключ, което води до вериги подкрепа преливни и допълнителен вход / изход.

Пример. Помислете същите продажби маса. както в предходния пример, и една и съща верига (Фиг. 11.2) tablespaces. Въпреки това, ние използваме като ключов идентификация разделяне на клиентите. Имайте предвид, че разпределението на стойностите на колоната може да бъде много неравномерно. Фрагмент от SQL код за създаване на хеш-разделена таблица на продажбите може да се запише като:

Оферта завесата HASH (s_customer_id) определя една база данни на Oracle за извършване на клавиша за разделяне на таблици за разделяне - s_customer_id. Предложения видове (PARTITION Q01 TABLESPACE ts_01 определят името на st_q01 на секцията и разположението му в подходящо пространство за таблици ts_01.

композитен разделяне

Composite разделяне (композитен разделяне) е комбинация от гама разделяне и хеш разделяне. Това означава, че на масата е разпределена сред първите пространства за таблици, основани на разделяне на ключови диапазон. Освен това, всяка от разделените участъци получени диапазони на роби раздели или подраздели, и след това редове са равномерно разпределени между секциите роб на ключа хеш.

Пример. Разглеждане на същите, както в предходната таблица например продажба и съща верига (Фиг. 11.2) tablespaces. Както разделящ ключ за диапазон с помощта на датата на продажбата. Като ключов хеш разделяне -identifikatsiyu клиент. Сега обаче, всяка секция на лента, за да бъде разделен на определен брой подраздели. Фрагмент от SQL код, за да създадете таблицата за покупко-продажба с композитен разделяне може да се запише като:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!