Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Adicionando muitas funções de validação (UDFs) ao Oracle - Qual método é executado mais rápido


A função autônoma pode ser muito mais rápida se você a definir como DETERMINISTIC e se os dados forem altamente repetitivos. Na minha máquina, essa configuração diminuiu o tempo de execução de 9 segundos para 0,1 segundos. Por motivos que não entendo, essa configuração não melhora o desempenho da função do objeto.
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;
/