› Fóruns › SQL e PL/SQL › Executar packages em cascata › Executar packages em cascata
Olá,
Para esclarecer a diferença básica de funcionamento de uma procedure e uma package, e com isso até melhorar a programação em alguns casos e também a performance…isso em termos simples…
Procedures quando são chamadas para execução seguem o seguinte caminho:
1-Dicionário de Dados
2-Memória da Sessão
3-Execução em Memória da procedure
Package quando são chamadas para execução tem uma característica interessante:
1-Dicionário de Dados
2-Memória Compartilhada
3-Execução em Memória da Package Body toda
Se uma procedure chama outra procedure e assim por diante, aumento as leituras no Dicionário e como isso fica na minha sessão não está compartilhado com outras sessões… ou seja, se a mesma procedure for chamada por outra sessão há novo processo…
Já na package, como isso fica compartilhado há um certo ganho nisso…além disso se todas as procedures utilizadas estiverem na mesma package ou até em outra dessa forma otimizada, o ganho de performance é bastante considerável em processos do tipo Batch (lotes) ou ainda quando a procedure é chamada várias vezes ao longo do dia…
Mas mesmo assim ambas podem estar em Background porém sempre haverá uma espera de resultado como disse o Litz no seu exemplo.
Espero ter ajudado um pouco…
[]s Ishii