Композитное разделение Oracle

Если вы разрываетесь между разделением по диапазону и хеш-разделением, можно использовать понемногу и от одного и от другого. По- явившееся u Oracle 8i композитное разделение (composite partitioning) позволяет создавать несколько диапазонных разделов, каждый из которых содержит два или более хеш-подраздела.

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

CRFATE TABLE Cust_Order (         order_nmb NUMER(7) NОТ NULL,         cust_nbr NUMBER(5) MOT NULL,         order_dt DATE NOT MULL,
        sales_emp_id NUMBER(5) NOT MULL,         sale_price NUMBER(9,2),
        expocted_ship_dt  DATE,
        cancelled_dt DATE,
        ship_dt DATE, 
        status VARCHAR2(20))
PARTITION BY RANGE (oraer_dt) SUBPARTITION BY HASH (cust_nbr) SUBPARTITIONS 4 STORE IN (order_sub1, order_sub2, order_sub3, order_sub4)     (PARTITION orders_1999
          VALUES LESS THAN (TGO_DATE('01-JAN-2000','DD-MON-YYYY'))                (SUBPARTITION orders_1999_s1 TABLESPACE order_sub1,                 SUBPARTITION oroers_1999_s2 TABLESPACE order_sub2,
                SUBPARTITION oroers_1999_s3 TABLESPACE order_sub3, 
                SUBPARTITION oroers_1999_s4 TABLESPACE order_sub4),     PARTITION orders_2000
         VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY'))               (SUBPARTITION orcers_2000_s1 TABLESPACE order_sub1,
               SUBPARTITION orders_2000_s2 TABLESPACE order_sub2,
               SUBPARTITION orders_2000_s3 TABLESPACE order_sub3,                SUBPARTITION orders_2000_s4 TABLESPACE order_sub4),    PARTITION orders_2001          VALUES LESS THAN (TO_DATE('01-JAN-2002'.'DD-MON-YYYY'))              (SUBPARTITION orders_2001_s1 TABLESPACE order_sub1,               SUBPARTITION orders_2001_s2 TABLESPACE order_sub2,               SUBPARTITION orders_2001_s3 TABLESPACE order_sub3,
              SUBPARTITION orriers_2001_s4 TABLESPACE order_sub4));

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

Вас заинтересует / Intresting for you:

Обновление до Oracle Database ...
Обновление до Oracle Database ... 5524 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Видеокурс по администрированию...
Видеокурс по администрированию... 10579 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Поддерживаемые Oracle типы дан...
Поддерживаемые Oracle типы дан... 5724 просмотров Валерий Павлюков Wed, 24 Oct 2018, 08:00:37
Работа с запросами Approximate...
Работа с запросами Approximate... 1494 просмотров Андрей Васенин Mon, 29 Oct 2018, 06:40:46
Войдите чтобы комментировать