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.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.