2016-08-04 8 views
1

Ich bin im Software Configuration Management-Team. Ich bin so neugierig, Memory-Lecks in PL/SQL zu finden. Haben wir irgendwelche spezifischen Werkzeuge? Oder irgendeine andere Methode, um das zu finden. Wenn ja, kann ich es nach dem Einchecken in den Prozess bringen und den Benutzern auf die Speicherlecks hinweisen.So finden Sie Speicherlecks in PL/SQL-Code

Danke!

+0

PL/SQL ist eine ziemlich hochstufige Sprache, die den Entwicklern keine große Kontrolle über die interne Garbage-Collection gibt, daher bin ich mir nicht sicher, welche Art von Code-Konstruktionen Sie im Sinn haben. Vielleicht eine globale Sammlung, die von einem 'bulk collect' ohne" Limit "bevölkert wird, aber selbst das könnte in Abhängigkeit von der Größe der abgefragten Tabellen sinnvoll sein. Welche Probleme siehst du? –

Antwort

2

v $ sessmetric ist ein schneller Weg, um zu sehen, welche Ressourcen jeder Sitzung verwendet - CPU, physical_reads, logical_reads, pga_memory usw.

Die folgende Abfrage geben wird, was das Objekt wird die Sitzung mit:

SELECT v$sessmetric.*, sql_text, sql_fulltext 
    FROM v$sessmetric 
     LEFT OUTER JOIN (SELECT * 
          FROM v$sql 
         WHERE users_executing > 0) queries_running 
      ON v$sessmetric.session_id = queries_running.parsing_schema_id; 
+0

Danke U. Dafür müssen wir die App richtig starten? Ich habe versucht, nach jeder Datei (Paket) zu suchen, die in unserem Quellcode-Tool eingecheckt wurde (Say SVN oder Clearcase). – John