Show TOC Anfang des Inhaltsbereichs

 Beispielanalyse einer Oracle-Anweisung  Dokument im Navigationsbaum lokalisieren

Sie können die SQL-Trace-Funktion dazu nutzen, Erklärungen zu bestimmten Oracle-Anweisungen anzuzeigen. Aus der Anzeige einer Trace-Datei heraus können Sie die Funktion Explain SQL nutzen, um mehr Informationen zu einer bestimmten Datenbankanweisung anzuzeigen. Die Explain-Funktion steht nur für PREPARE- und REOPEN-Operationen zur Verfügung. So analysieren Sie eine Anweisung:

...

       1.      Stellen Sie den Cursor auf die Zeile, die die zu analysierende Datenbankanweisung enthält.

       2.      Wählen Sie Explain.

Das Explain-Bild zeigt die Datenbankstrategie für die gewählte Operation.

Wenn Sie mit einer ORACLE-Datenbank arbeiten, können Sie z.B. die Analyse für die folgende Anweisung anzeigen:

select * from fllog where flcode = ‘00000123’.

Das System zeigt folgendes an:

 

OPERATION

OPTIONS

OBJECT NAME

ID

PAID

POS

SELECT STATEMENT

 

 

0

 

 

 

TABLE ACCESS    BY ROWID

 

FLLOG

1

0

1

INDEX                    UNIQUE SCAN

 

FLLOG___0

2

1

1

 

QUERY PLAN

SELECT STATEMENT

 

 

 

TABLE ACCESS BY ROWID

FLLOG

 

INDEX UNIQUE SCAN

FLLOG___0(UNIQUE)

Die Felder in der Anzeige haben folgende Bedeutung:

OPERATION

Name der Operation.

OPTIONS

Eigenschaften der Operation.

OBJEKT NAME

Objekt, das an der Operation beteiligt ist.

ID

ID-Nummer der Operation.

PAID

ID-Nummer, an die die aktuelle Operation ihre Ergebnisse übergibt. Das ist wichtig, wenn geschachtelte Zugriffe auf verschiedenen Hierarchieebenen beteiligt sind.

POS

Identifiziert die nächste Nummer für Operationen, die auf derselben Hierarchieebene stattfinden.

In obigen Beispiel ist der Schlüssel voll qualifiziert. Die Datenbank kann mit dem Primärschlüsselindex FLLOG__0 auf die Tabellensätze zugreifen. Jede transparente Tabelle im ABAP-Dictionary hat einen Primärschlüssel. Das System legt automatisch einen Index für diesen Schlüssel an. Der Primärschlüssel ist eindeutig, d.h., es gibt nur einen Indexeintrag für jede Zeile der Tabelle. Das System benutzt deshalb die Operation UNIQUE SCAN.

Die Operation UNIQUE SCAN erhält die ID 2 und die Parent ID 1. Das bedeutet, daß diese Operation ihre Ergebnisse an die Operation mit der ID 1 übergibt. Die ID 1 gehört zur Operation TABLE ACCESS. TABLE ACCESS kann wegen der Eindeutigkeit des Index BY ROWID direkt auf einen Satz zugreifen. Sobald das System eine Zugriffsstrategie gewählt hat, sendet es die SELECT-Anweisung mit ID 0 an die Datenbank.

Wenn die SELECT-Anweisung keinen voll qualifizierten Schlüssel angibt, muß die Datenbank möglicherweise die Sätze mit einem FULL TABLE SCAN lesen. In diesem Fall gibt es keinen Index, und die Datenbank liest die gesamte Tabelle in Paketen.

Wenn der Index nicht eindeutig ist, verwendet die Datenbank einen RANGE SCAN. RANGE SCAN ist ein generischer Zugriff bei dem ein Indexbereich durchsucht wird, der relevante Daten enthalten könnte.

Die Operation NESTED LOOP ist für geschachtelte Lesezugriffe bestimmt, wobei mehrere Indizes für einen Datenbankzugriff zusammengefasst werden.

 

Ende des Inhaltsbereichs