Auch hier wieder ein Verweis auf den Artikel von Arup Nanda, der das “Doing” sehr gut beschreibt.
Das in meinem letzten Blog-Eintrag beschriebene Database Replay kann einiges nicht:
- Nur einzelne Statements analysieren
- Statements, die auf eine bestimmte Tabelle zugreifen, analysieren
- Zusätzliche (nicht aufgezeichnete) Statements analysieren
- Auf Detailebene Statistiken und Ausführungspläne analysieren
Genau diese Punkte sind die Stärken des SQL Performance Analyzer (SPA).
Ein kleines Beispiel: Ich habe den TPC-H-Benchmark von Hammerora laufen lassen, danach optimizer_index_cost_adj von 100 auf 10 gesetzt, die gleichen Statements nochmals laufen lassen und die Resultate verglichen:
![]()
![]()
![]()
Cool
Aber wie immer – Es ist noch nicht 100% perfekt:
Ich würde mir wünschen, dass die Performanceauswirkungen einer Migration vorhergesehen werden können. Nun kann ich zwar mit Oracle 10g ein SQL Tuningset erzeugen, dies in 11g importieren und dort analysieren. Leider werden nur die Statements, nicht aber die Statistiken und Ausführungspläne übernommen. D.h., die Statements werden mit 11g neu ausgeführt – und können auch nur mit 11g verglichen werden.
Zwar kann ich z.B. den Optimizer von 10g (und auch früher) simulieren – aber es ist doch nicht das gleiche.
Also – das wäre noch mein Wunsch: Die Statistikdaten von 10g mit übernehmen und auch mit vergleichen. Dies würde das sehr gute Tool nochmals aufwerten.