Die List Partitionierung ermöglicht es Zeilen in Partitionen abzulegen, die vom Partitionierungskriterium in einer Werteliste zusammen gefasst sind.
Beispiele für die Einteilung können sein:
Beispiel:
CREATE TABLE emp_listpart
(
mitarb_nr NUMBER(10),
vorname VARCHAR2(20),
nachname VARCHAR2(20),
abteilung NUMBER(3),
beruf VARCHAR2(100)
)
PARTITION BY LIST (beruf)
(
PARTITION beruf_1 VALUES ('MANAGER','SALESMAN'),
PARTITION beruf_2 VALUES ('CLERK','PRESIDENT'),
PARTITION beruf_unbekannt VALUES (NULL)
);
Folgende Einschränkungen gelten für die List-Partitionierung:
Vorteile:
Operationen mit List-Partitionen:
CREATE TABLE emp_list (
empno NUMBER(6),
ename VARCHAR2(20),
hiredate date,
deptno number(2))
PARTITION BY LIST (deptno)(
PARTITION u_werte VALUES (10, 30) TABLESPACE users_1,
PARTITION g_werte VALUES (20, 40) TABLESPACE users_2);
SELECT table_name, partition_name partition, high_value,
partition_position position
FROM user_tab_partitions
WHERE table_name='EMP_LIST';
TABLE_NAME PARTITION HIGH_VALUE POSITION
---------- --------- ---------- --------
EMP_LIST G_WERTE 20,40 2
EMP_LIST U_WERTE 10,30 1
Wenn aus der List Partition Werte gelöscht werden sollen, kann DROP VALUES benutzt werden:
ALTER TABLE emp_list MODIFY PARTITION g_werte DROP VALUES (40);
SELECT table_name, partition_name partition, high_value,
partition_position position
FROM user_tab_partitions
WHERE table_name='EMP_LIST';
TABLE_NAME PARTITION HIGH_VALUE POSITION
----------- ---------- ---------- --------
EMP_LIST G_WERTE 20 2
EMP_LIST U_WERTE 10,30 1
Mit der Option ADD Values können wieder Werte zu einer Partition hinzugefügt werden:
ALTER TABLE emp_list MODIFY PARTITION g_werte ADD VALUES (40);
Auch neue Partitionen lassen sich nachträglich hinzufügen mit:
ALTER TABLE emp_list ADD PARTITION s_werte VALUES (0, -10);
TABLE_NAME PARTITION HIGH_VALUE POSITION
---------- --------- ---------- --------
EMP_LIST G_WERTE 20,40 2
EMP_LIST S_WERTE 0,-10 3
EMP_LIST U_WERTE 10,30 1
Wenn zwei Partition zur einer verschmolzen werden sollen benutzt man MERGE PARTITIONS:
ALTER TABLE emp_list MERGE PARTITIONS u_werte, s_werte
INTO PARTITION u_werte;
TABLE_NAME PARTITION HIGH_VALUE POSITION
---------- --------- -------------- --------
EMP_LIST G_WERTE 20 2
EMP_LIST U_WERTE 0, -10, 10, 30 1
Mit der Option SPLIT PARTITION kann eine Partition in zwei aufteilt werden:
ALTER TABLE emp_list SPLIT PARTITION u_werte VALUES (0)
INTO (PARTITION n_werte, PARTITION u_werte);
Zum Umbenennen einer Partition wird RENAME PARTITION benutzt:
ALTER TABLE emp_list RENAME PARTITION g_werte TO gerade_werte;
Wenn eine Partition mit TRUNCATE geleert werden soll, kann folgende Syntax benutzt werden:
ALTER TABLE emp_list TRUNCATE PARTITION u_werte DROP STORAGE;
Telefon:
089 6228 6789-0
Telefon (gültig bis Ende 2010):
089 679090-40
E-Mail:
› info@muniqsoft.de
Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.