Oracle 9i Buffer Cache leeren

Hi an alle

Gibt es einen Befehl um bei Oracle 9i (9.2.0.1.0 unter Windows XP) den (Tabellen)Cache zu leeren ?
Das einzige was ich beim Googlen gefunden habe war ALTER SYSTEM flush shared_pool; was aber leider auch nicht den gewuenschten Erfolg brachte.

Das ganze soll dazu dienen die Performance von unterschiedlichen Indizes zu messen. Einzige Moeglichkeit die ich bisher gefunden habe war vor jedem Zeitmessungsdurchgang saemtliche Tabellen zu loeschen und wieder neu zu erstellen um unverfaelschte Ergebnisse zu bekommen, aber da muss es doch auch eine andere Moeglichkeit geben, oder ?

Danke
Gruss Claudia

Ergaenzung
Beim SQL Server heisst die Funktion die ich suche DBCC DROPCLEANBUFFERS.

Hallo Claudia,

eigentlich sollte man das so auch nicht machen, da man dadurch eine unrealistische Ausgangssituation schafft. Die Speicher sind nun mal voll (hoffentlich) wenn das System läuft und entsprechend optimiert ja auch die Datenbank.

Gute zu schlechte SELECTS unterscheiden sich in Größenordnungen. Und ob ein Index verwendet wird, kannst Du in der Enterprise Manager Konsole in der Session im Ordner SQL sehen. Da steht der gesamte Ausführungsplan und die Kosten. Danach würde ich optimieren.

Ach ja:

Die Oracle 10g macht das so:

alter system flush buffer_cache;

Unter 9i verwendet man:

alter session set events = ‚immediate trace name flush_cache‘;

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter
Vielen Dank, mit dem Befehl klappt es nun endlich. (Auch wenn das wohl eine Methode ist die ein echter DBA nie verwenden wuerde. Aber unser Prof will nunmal Zeiten statt Kosten sehen :wink: ).
Gruss Claudia

Hallo Claudia,

bei den Zeiten ist bei Oracle Vorsicht geboten. Die CPU-Zeit ist meist durch Rundungsfehler nicht verwendbar. Besser ist die Gesamtdauer.

Viele Grüße

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]