Tunning Oracle, trabalhando o contexto
[ad#texto]
O Oracle é um banco de dados que vem evoluindo a muitas décadas, na sua origem ele apenas comportava SQL, a linguagem PL/SQL foi desenvolvida posteriormente pela Oracle e foi sendo inserida e melhorada aos poucos, internamente a Oracle criou dois ambientes distintos de processamento, um para o SQL e outro para o PL/SQL, estes ambientes foram denominados como contexto.
Em um código PL/SQL, uma procedure, por exemplo, podemos utilizar tanto SQL como PL/SQL de forma conjunto, esta flexibilidade auxilia e facilita o desenvolvimento na plataforma Oracle, mas ela tem um custo e caso esta flexibilidade seja utilizada de forma leviana o custo será alto e será cobrado em forma de perda de performance.
Esta “troca” ficou conhecida como troca de contexto.
Assim fica clara que uma principais atitudes de um desenvolvedor ao querer melhorar a performance de sua aplicação é diminuir as trocas de contexto, aqui vai um detalhe interessante, todos os comandos do SQL já foram portados para o PL/SQL com exceção do comando REVERSE.
Veja um exemplo com troca de contexto e que tende a ser mais lenta:
select sysdate
into minhaVar
from dual;
Evitando a troca de contexto teríamos o mesmo código acima sendo executado da seguinte forma:
minhaVar := sysdate;
Notaram que além de evitar a troca de contexto, melhorar a performance temos um código mais legível e produzido com muito menos linhas o que facilita sua manutenção no longo prazo.