Ich habe Jobs in Oracle, die stundenlang eine Menge Berechnungen mit XmlTransform ausführen können (aber nicht beschränkt auf). Ich habe festgestellt, dass der PGA-Speicher allmählich zunimmt (und die Leistung abnimmt), bis der Job irgendwann mit einer PGA-Meldung (Out of Memory) ausfällt. Wir haben einige Korrekturen angewendet, aber sie scheinen das Problem nicht zu lösen. Stoppen der Jobs und neu starten, löst mein Problem, die Leistung ist wieder gut und der Speicher ist niedrig ... Der gesamte Code ist in PL/SQL und SQL geschrieben.So umgehen Sie ein Speicherleck in Oracle
Frage: Da ich so schnell wie möglich lösen möchte, habe ich mich gefragt, wie ich diese Art von Problem in Oracle umgehen kann.
Mein Haupt Denken geht irgendwie:
- den Auftrag nach einiger Zeit neu zu starten (möglicherweise die einfachste Lösung) mit Advanced Queuing
- Neustart der aktuellen Sitzung?
- Code synchron in einer anderen Sitzung ausführen, vielleicht ein anderer Job.
Oracle 12.1.0.2
EDIT: Als Beispielcode mit XmlTransform hier gefragt:
function i_Convert_Xml_To_Clob (p_Zoek_Result_Type_Id in Zoek_Result_Type.Zoek_Result_Type_Id%type,
p_Xml in xmltype,
p_Xml_Transformation in xmltype) return clob is
mResult clob;
begin
if p_Xml_Transformation is not null then
select Xmltransform (p_Xml, p_Xml_Transformation).getclobval()
into mResult
from Dual;
elsif p_Xml is not null then
mResult := p_Xml.getclobval();
else
mResult := null;
end if;
return mResult;
end i_Convert_Xml_To_Clob;
Warum nennen Sie es ein Speicherleck? Sie müssen Ihren Job optimieren, um effizienter zu sein, oder der Datenbank mehr Speicher zur Verfügung stellen, damit sie die Arbeit ausführen kann, die Sie tun möchten – thatjeffsmith
@thatjeffsmith wie erwähnt, die Speicherauslastung nimmt zu, sollte aber nicht sein . Ich habe den Code sehr gut abgestimmt, konnte aber keine mögliche Quelle für den Anstieg finden. Ich kann die Jobs irgendwie neu starten, aber das ist leichter gesagt als getan. – rvheddeg
Ja, aber wir können Ihnen nicht helfen - Sie müssen uns Ihren Code zeigen, Ihre Spuren, zeigen Sie uns, warum die Erinnerung zunimmt und warum Sie denken, dass es nicht sein sollte – thatjeffsmith