|
|
---|---|
Reduzieren von Disk I/O durch optimieren der Oracle Sort Areas Operationen wie ORDER BY, DISTINCT, GROUP BY, CREATE INDEX, INTERSECT, MINUS, UNION lösen Sortoperationen aus. Daten können von Oracle auf verschiedene Arten sortiert werden, unter Verwendeung eines Index, im Memory oder als Disk-Sort. Das richtige Setzen der INIT.ORA Parameter SORT_AREA_SIZE und SORT_AREA_RETAINED_SIZE sind für In-Memory Sorts wichtig, ein korrekt definierter TEMPORARY Tablespace für Disk-Sorts. In-Memory Sorts In-Memory Sorts werden bis zu einer Grösse von
SORT_AREA_RETAINED_SIZE vollständig im Memory Bereich des User Prozesses (PGA)
durchgeführt. SELECT name,value FROM v$parameter WHERE name LIKE '%sort_area%'; NAME VALUE --------------------------- ------- sort_area_size 512000 sort_area_retained_size 128000 Kontrolle der Sort Operationen Anzahl der Sorts im Memory und auf der Disk SELECT name, value Durschnittliche Anzahl sortierter Rows pro Sort Operation SELECT
TO_CHAR(ROUND(tot.value/(mem.value+dsk.value))) Disks Sorts Disk Sorts werden im TEMPORARY Tablespace durchgeführt. Es ist wichtig, dass dieser Tablespace optimal ausgelegt wird, dazu ist folgendes zu beachten.
Bei einem Blocksize von 4K und einer SORT_AREA_SIZE von 512K ergeben sich folgende Werte für INITIAL und NEXT des Temporary Tablespace: 4K + (1 * 512K) = 516K CREATE TABLESPACE temp DATAFILE '/u01/db/tmp/SOL1_temp1.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED DEFAULT STORAGE (INITIAL 1028K NEXT 1028K MINEXTENTS 2 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY ONLINE; |