Oracle Insert into Partition

Um Daten direkt in eine bestimmte Partition einzufügen gibt es folgende zwei Varianten:

a) mit Partitionsnamen:

insert /*+ APPEND */ into myTbl2
 partition (P_123)
     ( K_PARTITION_KEY
     , Col2
     )
select T1.K_PARTITION_KEY
     , T1.Col2   from myTbl T1
 where T1.K_PARTITION_KEY = 123;

b) mit Partitionswert (LIST-Partitioniert):


insert /*+ APPEND */ into myTbl2
 partition for (123)
     ( K_PARTITION_KEY
     , Col2
     )
select T1.K_PARTITION_KEY
     , T1.Col2
  from myTbl T1
 where T1.K_PARTITION_KEY = 123;

Vorteil: Es wird nur die betroffene Partition gelocked. Andere Partitionen können parallel "bearbeitet".
Nachteil: Der Partitionsname oder -wert muss vorher mitgegeben werden -> also dyn. SQL.



Kommentare

Beliebte Posts aus diesem Blog

PGA unter Oracle 11g

trunc(sysdate) - nette Spiele mit dem Datum

Datapump - Verzeichnis erstellen