|
XCP Blackboard | ||||
|
|||||
| Tip No. 5 Inhalt eines Oracle-Blocks analysieren | |
|
Die Daten einer Tabelle werden letztendlich binär in einem sogenannten Oracle-Block in den Datendateien gespeichert.
Die Datendatei wird immer in Oracle-Blöcke gleicher Größe organisiert. Ab 9i ist es sogar möglich in einer Datenbank mit unterschiedlichen Blockgrößen zu arbeiten. Der Inhalt eines Blocks lässt sich online in einen Tracefile schreiben und analysieren. Zuvor muss ermittelt werden, welche Blöcke zu einer Tabelle gehören. Beispiel (User SYS): SYS:SQL> column SEGMENT_NAME format A16 SYS:SQL> select segment_name, file_id, block_id, blocks 2 from dba_extents 3 where owner = 'SCOTT' 4 and segment_name = 'EMP'; SEGMENT_NAME FILE_ID BLOCK_ID BLOCKS -------------- -------- ---------- ---------- EMP 1 50465 8 Mit der File Id und der Block-Nummer lässt sich nun der Block in einen Tracefile schreiben. Beispiel (User SYS): SYS:SQL> alter system dump datafile 1 block 50465; System wurde geändert. Im User-Dump-Verzeichnis kann nun die passende Trace-Datei gesucht werden. Tip: entweder zuvor alle alten Einträge löschen oder mit der Session ID der aktuellen Session und dem aktuellen Datum die passende Datei suchen. Ein Beispiel für den ersten Block einer Tabelle (Header Block) finden Sie hier: Block Header Beispiel Mehrere Blöcke lassen sich zur gleichen Zeit mit der Block min/max Anweisung auslesen. Der Max-Block-Wert lässt sich zum Beispiel nach der Formel "Max =: start Block_id + Blocks -1" errechnen. SYS:SQL>alter system dump datafile 1 block min 50465 block max 50472 Ein Beispiel für alle Blöcke einer Tabelle finden Sie hier: Alle Blöcke Beispiel Mehr über die Analyse eines solchen Tracefiles erfahren Sie demnächst bei einem weiteren Oracle-Tip. Hintergrund-Informationen: (Auszug aus unseren Schulungsunterlagen)
|
|
| ©2005 netcos AG | www.netcos.de |