PDF-Version

Werbung
DOAG Konferenz
Nürnberg 2007
Tabellen Tuning oder
Pimp my Table
Impressum
Oracle Schulung (SQL, DBA, PL/SQL, Security, 11g,
Tuning, Backup & Recovery u.v.m.)
Oracle Consulting & Support
Oracle Entwicklung & Lizenzvertrieb
Marco Patzwahl
MuniQSoft GmbH
Grünwalder Weg 13 a
D-82008 Unterhaching b. München
Telefon:
E-Mail
Internet:
MuniQSoft GmbH
+49 (0)89 679090-40
[email protected]
www.muniqsoft.de
DOAG 2007
www.plsql.de
Tabellentuning
Seite 2
Einleitung
Dieser Vortrag soll die evtl. noch unbekannten
Seiten beim Tabellentuning beleuchten
Der Fokus liegt hier auf Speicherparametern,
Block-Größen und diversen Tricks
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 3
Tabellen-Speicherparameter
Beim Erstellen einer Tabelle können diverse
Speicherparameter angegeben werden
So kann der Benutzer z. B. folgende Parameter einstellen
INITIAL, NEXT (Bei Locally Managed TBS vom Tablespace
abhängig)
MINEXTENTS, MAXEXTENTS
PCTINCREASE, PCTUSED, FREELISTS und FREELIST
GROUPS (bei SEGMENT MANAGEMENT AUTO
Tablespace von Oracle gesetzt)
PCTFREE (7.0 – 11.1)
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 4
SQL Syntax für relationale Tabellen
CREATE TABLE [schema.]<tab_name>
(<column datatype> [ default <expr>] [<col_constraint>],
<column datatype> [ default <expr>] [<col_constraint>]
,...)
[TABLESPACE <tablespace_name>}
[STORAGE (
INITIAL n[K|M]
NEXT n[K|M]
MINEXTENTS n
MAXEXTENTS n
PCTINCREASE n)]
[PCTFREE n]
[PCTUSED n]
[LOGGING | NOLOGGING]
[CACHE | NOCACHE]
[COMPRESS|NOCOMPRESS] /* ab 9.2 */;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 5
Wahl des Spaltentyps
Welche Länge wird zur Speicherung einer Spalte verwendet ?
Datentyp
MuniQSoft GmbH
Speicherlänge
DATE
7
TIMESTAMP
11
ROWID
10
CHAR(100):='A'
100
VARCHAR2(100):='A'
1
NVARCHAR2(100):='A'
1
NUMBER:=123456.78
5
NUMBER(12,2):=123456.78
5
FLOAT:=123456.78
5
BINARY_FLOAT:=123456.78
4
BINARY_DOUBLE:=123456.78
8
DOAG 2007
Tabellentuning
Seite 6
Zeilenaufbau
Jede Zeile im Block setzt sich aus dem Row-Header und
den jeweiligen Spaltenwerten zusammen, wobei vor der
Spalte die jeweilige Länge des Spaltenwerts steht.
Bei VARCHAR2-Spalten wird für die Speicherung von bis
zu 250 Byte langen Werten ein Byte benötigt, darüber
drei Bytes.
Block Nr. 4711
MuniQSoft GmbH
Row-Header
Länge
Wert
Länge
Wert
Länge
Länge
Wert
3 Byte
4
Test
5
Marco
0
3
BMW
DOAG 2007
Tabellentuning
Seite 7
Spalten
Reihenfolge der Spalten
Bei unserem Test mit 50 CHAR(200) Spalten war kein
Unterschied zwischen Spalte 1 und 50 bei Updates zu
beobachten
Spalten die oft NULL Werte enthalten sollten ganz am
Ende stehen
Spaltendatentypen
VARCHAR2 und NUMBER sind gleich schnell, wenn sie
Zahlen aufnehmen sollen
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 8
Vor und Nachteile des Tabellentyps
Vorteile
Relationale per- Flexibel, sehr viele Datentypen und
manente Tabelle Optionen möglich.
Nachteile
langsam
Partitionierte
Tabelle
Administration der
Abfrage auf einzelne Partitionen
Partitionen notwendig
schneller.
Teile der Tabelle können mit
DROP/TRUNCATE gelöscht werden.
Index
Organisierte
Tabelle
Ausgabe bereits in sortierter
Reihenfolge.
Anzahl der Indizes beschränkt. Nachträgliche
Inserts & Updates ungünstig
Temporäre
Tabelle
Schnellster Tabellentyp.
Wird auf dem Temp-Tablespace
angelegt.
Transaktionsverlauf nicht in
den Redologs => Kein
Recovery im Fehlerfall!
Cluster Tabelle
Tabellen die mit Join verknüpft
werden, können hier im
gemeinsamen Block gespeichert
werden => schneller
Auch wenn nur eine Tabelle
benutzt wird, wird die
andere „mitgezogen“ =>
Overhead
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 9
Wahl des Tablespace
Möglichst einen eigenen Tabellen-Tablespace benutzen
(Nicht SYSTEM oder SYSAUX)
Speicherparameter so weit möglich auf diesem
Tablespace einheitlich wählen (INITIAL, NEXT)
Ab 8.1.6:
Locally Managed Tablespaces bevorzugen
Ab 9i:
SEGMENT SPACE MANAGEMENT AUTO Option bei
Tablespaces benutzen
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 10
Speicherparameter INITIAL & NEXT
Wenn auf der Tabelle häufig Full Table Scans durchgeführt
werden, ist es besser, sie in einem Extent anzulegen (wenn nur
eine Platte zur Verfügung steht)
Es muss dann ausgerechnet werden, wie groß die Tabelle ist
(oder sein wird)
Beispiel:
1 Million Zeilen à 100 Bytes = 100 MB
Wenn die Tabelle nicht immer im Ganzen gelesen wird, ist es
günstiger, alle Extents im Tablespace gleich groß zu machen,
also INITIAL=NEXT
Bei Locally Managed Tablespaces wird die Angabe der
Parameter ignoriert und stattdessen die Bitmap Einheit
verwendet (Default 64K)
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 11
Speicherparameter PCTFREE/ PCTUSED
Statische Tabellen Æ PCTFREE klein (0 – 5%)
Dynamische Tabellen Æ PCTFREE groß (10-30%)
Wenn zu viel "Luft" in den Blöcken ist, weil PCTFREE zu
groß gewählt wurde, werden unnötigerweise mehr Blöcke
gelesen oder geschrieben
PCTUSED sollte ca. 60% betragen. Ab 9i kann der
Parameter weggelassen werden, wenn der Tablespace
mit der Option SEGMENT SPACE MANAGEMENT AUTO
angelegt wurde
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 12
Speicherparameter FREELISTS
Die FREELISTS ist eine Übersicht der noch für INSERTOperationen verfügbaren Blöcke (1 = benutzt, 0 = frei)
Wenn zu viele INSERTS in einem Block gleichzeitig aktiv sind,
kann es zu Wartezuständen kommen
Passen Sie deshalb hier die Anzahl der FREELISTs an die
Anzahl der parallel laufenden INSERTs auf ein Objekt an
CREATE TABLE EMP(a VARCHAR2(200))
STORAGE (INITIAL 1M NEXT 1M MINEXTENTS 1
PCTINCREASE 0 FREELISTS 16);
ALTER TABLE emp STORAGE (FREELISTS 16);
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 13
FREELISTS ab 9i
Ab 9i werden die FREELISTs von Oracle automatisch
verwaltet
00 => 75% frei im Block
01 => 50% frei im Block
10 => 25% frei im Block
11 < 25% frei im Block
Ab 9i kann der Parameter weggelassen werden, wenn der
Tablespace mit der Option SEGMENT SPACE MANAGEMENT
AUTO angelegt wurde
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 14
Speicherparameter FREELIST GROUPS
Eigentlich für Real Application Cluster konzipiert, jedoch oft
auch bei Single-Instanzen von Vorteil sind die FREELIST
GROUPS.
Hier werden komplette Blöcke nach dem Segment Header für
die FREELISTS reserviert. Das führt zu einer weiteren
Reduzierung von Wartezuständen bei vielen gleichzeitigen
INSERTs.
CREATE TABLE t(c VARCHAR2(200))
STORAGE (INITIAL 1M PCTINCREASE 0 FREELIST GROUPS
2 FREELISTS 4);
Ab 9i kann der Parameter weggelassen werden, wenn der
Tablespace mit der Option SEGMENT SPACE MANAGEMENT AUTO
angelegt wurde.
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 15
Speicherparameter BUFFER_POOL
Wenn eine Tabelle (oder ein Index) mit diesem Attribut
ausgestattet ist, bekommt sie Ihren eigenen Speicherbereich
im Database Buffer Cache (DBBC)
CREATE TABLE test (d date)
STORAGE (buffer_pool keep);
ALTER TABLE test
STORAGE (buffer_pool recycle);
CREATE INDEX ind ON test(d)
STORAGE (buffer_pool keep);
ALTER INDEX ind
STORAGE (buffer_pool recycle);
Hinweis: Für UNDO-Segmente ist die Buffer-Pool Klausel nicht
erlaubt
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 16
Speicherparameter BUFFER_POOL
Für die privilegierten Tabellen muss dann noch ein
entsprechender Keep- bzw. Recycle-Speicherbereich
neben dem Default-DBBC eingerichtet werden:
Ab Version 9i
ALTER SYSTEM SET db_keep_cache_size=16m;
ALTER SYSTEM SET db_recycle_cache_size=4m;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 17
Speicherparameter CACHE/NOCACHE
Tabellen länger im Cache halten:
ALTER TABLE emp CACHE;
Tabellen an das Ende der LRU-Liste setzen:
ALTER TABLE emp NOCACHE;
Mittels Hint kann eine Tabelle auch an den Anfang bzw.
an das Ende der LRU Liste gesetzt werden:
SELECT /*+ CACHE(scott.emp) */ *
FROM scott.emp;
SELECT /*+ NOCACHE(scott.emp) */ *
FROM scott.emp;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 18
Speicherparameter NOLOGGING
Hier werden diverse Operationen der Tabelle nicht mehr
vollständig im Redolog protokolliert werden
Folgende Operationen werden nicht mehr protokolliert:
Direct load mittels SQL*Loader
Direct load mittels INSERT (INSERT /*+ APPEND */ INTO <tab>
SELECT …)
CREATE TABLE ... AS SELECT ... (CTAS)
CREATE INDEX ...
ALTER TABLE ... MOVE PARTITION und SPLIT PARTITION
ALTER INDEX ... SPLIT PARTITION
ALTER INDEX ... REBUILD und REBUILD PARTITION
INSERT, UPDATE, und DELETE auf non-internal LOBs in
NOCACHE NOLOGGING
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 19
Speicherparameter COMPRESS
Diese Funktion ist ab Version 9.2 verfügbar
Es werden jedoch nur beim ersten Laden der Daten in die
Tabelle mehrfache Einträge in den Blöcken komprimiert
CREATE TABLE <tab>(...) TABLESPACE
<tbs> COMPRESS
AS SELECT * FROM <tab>;
Normale Inserts oder Updates werden bis Version 11g
nicht komprimiert abgespeichert
Workaround (auch für nachträgliches Einschalten):
ALTER TABLE <tab> MOVE TABLESPACE <tbs>
COMPRESS;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 20
Tabelleninhalte komprimieren
Bei einer Testtabelle mit 2.4 GB Volumen wurde die
Tabelle durch COMPRESS auf 1.6 GB reduziert
Blockheader
Freier Platz
Symbol-Tabelle
Tabellendaten
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 21
Tabelleninhalte komprimieren
SELECT sollte etwas schneller werden, da weniger I/O
benötigt wird
INSERT/UPDATE benötigen bei gleichen Spaltenwerten
länger, da die Symbol-Tabelle aufgebaut und ständig
geprüft werden muss
DELETE benötigt ebenfalls länger
Ein SHRINK ist auf einer komprimierten Tabelle nicht
möglich
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 22
Größe der Tabelle minimieren
Beispiel: Tabelle dba_source mit verschiedenen Parametern
Durchschnittliche Zeilenlänge: 120 Byte
Blockgröße
8K
Blockgröße
16K
Blockgröße
4K
Nutzbarer
Bereich (ca.)
6,9K
14K
3,3K
PCTFREE 10
NOCOMPRESS
50M
42M
42M
PCTFREE 0
NOCOMPRESS
46M
36M
38M
PCTFREE 0
COMPRESS
37M
26M
29M
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 23
Tabellen-Tuning (Constraints)
Constraints ausschalten (DISABLE) beschleunigt
UPDATE/ INSERT & Import:
ALTER TABLE <tab> DISABLE CONSTRAINT <cons>;
Achtung: Sollte ein Primary Key oder Unique Key Constraint
ausgeschalten werden, wird der dazugehörige Index gelöscht!
Ausnahme:
ALTER TABLE employees DROP PRIMARY KEY KEEP INDEX
/* ab 9i */;
Einschalten kann man einen Constraint wieder mittels:
ALTER TABLE <tab> ENABLE CONSTRAINT <cons>;
Sollte der Index gelöscht worden sein (s.o.) wird er neu angelegt!
Achtung:
Ohne Constraints kann die Applikationslogik zerstört werden !
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 24
Tabellen-Tuning (Trigger)
Trigger ausschalten beschleunigt UPDATE/ INSERT/
DELETE & Import:
ALTER TABLE <tab> DISABLE ALL TRIGGERS;
Einschalten aller Trigger einer Tabelle wieder mittels:
ALTER TABLE <tab> ENABLE ALL TRIGGERS;
Achtung:
Durch das Ausschalten der Trigger kann die
Applikationslogik zerstört werden !
Statement Trigger sind schneller als Row-Trigger
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 25
Tabellen-Tuning (Indizes)
Bei größeren INSERTs ist es meist schneller, die Indizes
der Tabelle zuerst zu löschen und später dann wieder
neu anzulegen
Jedoch ist während der INSERTs dann kein Indexzugriff
von anderen Sessions möglich => Full Table Scan
Indizes können bei Bedarf mit den Optionen
NOLOGGING, COMPRESS und ONLINE schnell erzeugt
werden
Jedoch sollten auch die "Nebenwirkungen" beachtet
werden
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 26
Tabellen-Tuning
Chained Rows vermeiden (Abspeicherung in
mehreren Satzstücken, die in verschiedenen
Datenblöcken liegen, da Satzgröße länger
als der Block ist (Æ Chained Rows)) Æ
Blockgröße vergrößern (bis 9i nur durch
Neuanlegen der DB möglich).
Tablepartitioning (ab Version 8 mit
kostenpflichtiger Partitioning Option) zum
Aufteilen der Tabellen auf verschiedene
Tablespaces (auf verschiedenen Platten).
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 27
Locks reduzieren
Wenn eine Tabelle einen Foreign Key besitzt, sollte
darauf ein Index gesetzt werden, denn wenn vor 8.1.7
in der Mastertabelle ein UPDATE oder
ein DELETE auf den PK durchgeführt wird,
sperrt Oracle die komplette Child-Tabelle
Auch ein Update auf alle Spalten führt zu diesem Effekt
(Oracle Forms macht das als Standard)
Bei Joins zwischen Primary Key und Foreign Key Spalten
sollten auch die Foreign Key Spalten indiziert sein
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 28
NULL Werte
Tabellenspalten, in denen NULL-Werte vorkommen
können, sind durch einen Index-Zugriff nicht auffindbar
Ausnahme: Bitmap Index (Enterprise Edition)
Das bedeutet, dass eine Abfrage auf NULL (... WHERE
comm IS NULL) immer zu einem Full Table Scan führt
Alternativ kann die Spalte mit einem Default-Eintrag
versehen werden. z. B. 'NA', 'NN'‚ '-1'
CREATE TABLE test (nr NUMBER DEFAULT '-1');
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 29
NULL Werte
Nachteile eines Default-Wertes
NULL-Werte benötigen weniger Platz in der Spalte (in den
letzten Spalten sogar 0 Bytes)
Evtl. sind mehr Blöcke nötig, um alle Daten aufzunehmen
Index wird größer, da NULL Werte nicht indiziert werden
Vorteile
Es sind keine Outer-Joins mehr notwendig. Equi-Joins
sind hier ausreichend
Tabelleninhalt ist häufig für Laien besser verständlich
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 30
DROP TABLE beschleunigen
Das Löschen von Objekten kann sehr lange Zeit in
Anspruch nehmen, da u. U. viele Extents frei gegeben
werden müssen. Dadurch wird CPU verbraucht.
Bei großen Tabellen kann der Löschvorgang in mehrere
Teile zerlegt werden, die an verschiedenen Tagen
ausgeführt werden.
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 31
DROP TABLE beschleunigen (f)
Beispiel: Tabelle BIG_EMP ist 1GB groß (= 131.072 * 8KB
Extents)
[TRUNCATE TABLE BIG_EMP DROP STORAGE;
-- Dauert z. B. 4 Stunden]
TRUNCATE TABLE BIG_EMP REUSE STORAGE;
-- HWM wird versetzt
ALTER TABLE BIG_EMP DEALLOCATE UNUSED KEEP 750M;
ALTER TABLE BIG_EMP DEALLOCATE UNUSED KEEP 500M;
ALTER TABLE BIG_EMP DEALLOCATE UNUSED KEEP 250M;
DROP TABLE BIG_EMP;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 32
DROP COLUMN optimieren (ab 8i)
Es gibt zwei Verfahren, eine Spalte zu ‚löschen‘:
Auf unbenutzt setzen (unused). Hier wird die
Spalte nur aus dem DD ausgetragen, aber nicht
phys. gelöscht. Dies ist die schnellere Variante
ALTER TABLE <tab> SET UNUSED COLUMN <col>;
Spalte aus der Tabelle physikalisch löschen
ALTER TABLE EMP DROP COLUMN ENAME CHECKPOINT 256;
Durch die Checkpoint Angabe werden die Rollbacksegmente nicht
so sehr beansprucht. Trotzdem kann es mehrere Stunden dauern,
bis die Transaktion abgeschlossen wurde !
ALTER TABLE DROP UNUSED COLUMNS;
Löscht alle auf UNUSED gesetzten Spalten
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 33
Tuning von DML Befehlen: Allgemeines
Achten, Sie darauf, dass die Redolog-Dateien nicht zu
klein sind
Hinweise dazu stehen in der Alert.log: "Checkpoint not
complete" bedeutet u. U. sie sind zu klein
Wenn die Archivierung ausgeschalten werden kann
(Testsysteme!!!) spart dies eine Menge Zeit
Der Database Buffer Cache sollte ausreichend groß
dimensioniert sein
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 34
Tuning von DML-Befehlen: INSERT
Erhöhung des Parameters FREELISTS / FREELIST GROUPS
(bis 9i)
Erhöhung des Parameters INITRANS
ALTER TABLE <owner>.<tab> INITRANS 10;
Löschen der Indizes
DROP INDEX <owner>.<index>;
Danach wieder Neuaufbau des Index
Ausschalten der Constraints
ALTER TABLE <owner>.<tab> DISABLE CONSTRAINT
<constraint>;
Danach wieder Einschalten des Constraints, wenn noch möglich
Erhöhung des Database Buffer Caches
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 35
Tuning von DML-Befehlen: INSERT
Verwenden Sie den APPEND Hint
INSERT /*+ APPEND */ INTO <owner>.<table>
SELECT * FROM <owner>.<table>;
Verwenden Sie den PARALLEL Hint:
ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ PARALLEL (<table>, <parallel
degree>) */
INTO <owner>.<table>
SELECT * FROM <owner>.<table>;
COMMIT;
Tuning von DML-Befehlen: UPDATE
Erhöhung des Parameters FREELISTS / FREELIST GROUPS
Erhöhung des Parameters INITRANS
ALTER TABLE <owner>.<tab> INITRANS 5;
Löschen der Indizes
DROP INDEX <owner>.<index>;
Danach wieder Neuaufbau des Index
Ausschalten der Constraints
ALTER TABLE <owner>.<tab> DISABLE CONSTRAINT <constraint>;
Danach wieder Einschalten des Constraints, wenn noch möglich
Nur die Spalten updaten, die sich wirklich ändern
UPDATE emp SET sal=sal;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 37
Tuning von DML-Befehlen: UPDATE
Parallelisieren Sie den UPDATE:
ALTER SESSION ENABLE PARALLEL DML;
UPDATE
/*+ PARALLEL (<tab>,<parallel degree>) */
<owner>.<tab> SET <col>=<value>;
Beispiel:
ALTER SESSION ENABLE PARALLEL DML;
UPDATE /*+ PARALLEL (big,2) */ scott.big
SET owner='#';
COMMIT;
Tuning von DML-Befehlen: DELETE
DELETE in kleinere Teile zerlegen
delete from <tab> where rownum<10000;
commit;
delete from <tab> where rownum<10000;
commit;
Wenn Tabelle zum großen Teil gelöscht wird, vorher
Indizes + Constraints ausschalten
Wenn Tabelle komplett gelöscht wird, kann auch ein
TRUNCATE TABLE Befehl benutzt werden. Es ist aber
dann kein Rollback mehr möglich
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 39
Tuning von DML-Befehlen: DELETE
Parallelisieren Sie den DELETE:
ALTER SESSION ENABLE PARALLEL DML;
DELETE
/*+ PARALLEL (<tab>,<parallel degree>) */
FROM <owner>.<tab>;
Beispiel:
ALTER SESSION ENABLE PARALLEL DML;
DELETE /*+ PARALLEL (big,2) */ FROM scott.big;
COMMIT;
Performance Vergleich (11g)
Tabelle mit 2.5 Millionen Zeilen (290MB) im Locally Managed Tablespace
(Archivierung ausgeschalten)
Befehl
Ohne
Speicherparameter (1)
Nologging(2)
Mit Speicherparameter(3)
Leere Table
+ INSERT /*+
APPEND (4)
Temporäre
Table (5)
Parallel 2
(6)
Table
Compress (7)
CREATE TABLE
AS SELECT *
18.1s
17.2s
17.3s
17.8s
17.0s
18.3s
17.7s
18.5s
15.9s
15.5s
23.9s
18.0s
19.0s
14.6s
14.9s
16s
23.6s
23.1s
UPDATE
2m6s
3m14s
2m44s
2m55s
1m7s
5m51s
(1) CREATE TABLE big2 AS SELECT * from big;
(5) CREATE GLOBAL TEMPORARY TABLE big2
(2) CREATE TABLE big2 NOLOGGING AS SELECT ...; ON COMMIT PRESERVE ROWS;
(3) CREATE TABLE big2 STORAGE (INITIAL 8M
INSERT INTO big2 SELECT * FROM big;
NEXT 8M PCTINCREASE 0) AS SELECT * FROM big;
(6) CREATE TABLE big PARALLEL 2 AS SELECT …;
(4) CREATE TABLE big2 AS SELECT * FROM big
(7) CREATE TABLE big COMPRESS AS SELECT …;
WHERE 1=2;
INSERT /*+ APPEND */ INTO big2 SELECT * FROM big;
MuniQSoft GmbH
DOAG 2007
Tabellentuning
Seite 41
Impressum
Oracle Schulung (SQL, DBA, PL/SQL, Security,…)
Oracle Consulting & Support
Oracle Entwicklung & Lizenzvertrieb
Marco Patzwahl
MuniQSoft GmbH
Grünwalder Weg 13 a
D-82008 Unterhaching b. München
Telefon:
Fax:
E-Mail:
Internet:
MuniQSoft GmbH
+49 (0)89 679090-40
+49 (0)89 679090-50
[email protected]
www.muniqsoft.de
DOAG 2007
Tabellentuning
Seite 42
Herunterladen