Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So generieren Sie einen Erklärungsplan für die gesamte gespeicherte Prozedur

Was Sie generieren, wird korrekterweise als "Ausführungsplan" bezeichnet. "Explain plan" ist ein Befehl, der zum Generieren und Anzeigen eines Ausführungsplans verwendet wird, ähnlich wie AUTOTRACE TRACEONLY in Ihrem Beispiel.

Per Definition gilt ein Ausführungsplan für eine einzelne SQL-Anweisung. Ein PL/SQL-Block hat keinen Ausführungsplan. Wenn es eine oder mehrere SQL-Anweisungen enthält, hat jede davon einen Ausführungsplan.

Eine Möglichkeit besteht darin, die SQL-Anweisungen manuell aus dem PL/SQL-Code zu extrahieren und den bereits gezeigten Prozess zu verwenden.

Eine weitere Option besteht darin, die SQL-Ablaufverfolgung zu aktivieren und dann die Prozedur auszuführen. Dadurch wird auf dem Server eine Ablaufverfolgungsdatei erstellt, die die Ausführungspläne für alle in der Sitzung ausgeführten Anweisungen enthält. Die Ablaufverfolgung ist in ziemlich roher Form, daher ist es im Allgemeinen am einfachsten, sie mit dem TKPROF-Tool von Oracle zu formatieren. Es gibt auch verschiedene Tools von Drittanbietern, die diese Ablaufverfolgungsdateien ebenfalls verarbeiten.