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

Lokale temporäre Tabelle in Oracle 10 (für den Bereich der gespeicherten Prozedur)

Sie sagen, Sie sind neu bei Oracle. Ich vermute, Sie sind an SQL Server gewöhnt, wo es ziemlich üblich ist, temporäre Tabellen zu verwenden. Oracle funktioniert anders, daher ist es weniger verbreitet, weil es weniger notwendig ist.

Denken Sie daran, dass die Verwendung einer temporären Tabelle die folgenden Overheads mit sich bringt:

  1. Daten lesen, um temporäre Tabelle zu füllen
  2. temporäre Tabellendaten in Datei schreiben
  3. Lesen Sie Daten aus der temporären Tabelle, während Ihr Prozess beginnt
Die meisten dieser Aktivitäten sind nutzlos, wenn es darum geht, Ihnen zu helfen, Dinge zu erledigen. Eine bessere Idee ist zu sehen, ob Sie alles in einer einzigen Aktion erledigen können, vorzugsweise reines SQL.

Übrigens wirft Ihre Erwähnung des Verbindungspoolings ein weiteres Problem auf. Ein Prozess, der große Datenmengen verarbeitet, ist kein guter Kandidat für die Ausführung in einem OLTP-Modus. Sie sollten wirklich erwägen, einen Hintergrundprozess (d. H. Asysnchronous) zu initiieren, wahrscheinlich einen Datenbankjob, um Ihre gespeicherte Prozedur auszuführen. Dies gilt insbesondere, wenn Sie diesen Job regelmäßig ausführen möchten, da wir DBMS_SCHEDULER verwenden können, um die Verwaltung solcher Dinge zu automatisieren.