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

Hinzufügen vieler (UDFs) Validierungsfunktionen zu Oracle – welche Methode am schnellsten ausgeführt wird

Die eigenständige Funktion kann viel schneller sein, wenn Sie sie auf DETERMINISTIC einstellen und wenn sich die Daten stark wiederholen. Auf meinem Rechner verkürzte diese Einstellung die Laufzeit von 9 Sekunden auf 0,1 Sekunden. Aus Gründen, die ich nicht verstehe, verbessert diese Einstellung die Leistung der Objektfunktion nicht.

create or replace function isValid2(v in varchar2, format in varchar2)
return valObj
deterministic --<< Hit the turbo button!
is
  test number;
begin
if format = 'number' then
    begin
        test := to_number(v);
        return valObj(1,null);
        exception when VALUE_ERROR then return valObj(0,'Invalid number. Valid formats are: 12345, 12345.67, -12345, etc...');
    end;
end if;
end;
/