Utilizando cache no Oracle com subquery

[ad#texto]

Vimos que a troca de contexto deve ser evitada a fim de obtermos uma melhor performance em nossas aplicações PL/SQL, porém existe uma exceção a esta regra, tudo devido a um recurso da Oracle chamado de scalar subquery caching.

Este recurso consiste na capacidade do Oracle de determinar quais registros serão sempre retornados quando executamos uma subquery dentro de uma query e desse modo armazena este conjunto de resultados em cache deixando sua reutilização muito mais rápida, assim mesmo utilizando a troca de contexto conseguimos obter uma performance superior.

Porém estes recurso deve ser utilizado com cuidado a fim de ser implementado de forma correta.

Vamos supor a seguinte query em uma tabela com mais de 1 milhão de registros:

SELECT LOWER(nome) nome, idade  FROM suaTabela

Este é um método tradicional (comum) para executar uma query, porém, utilizando em nosso benefício a aplicação do scalar subquery caching temos:

SELECT (SELECT LOWER(nome) FROM dual) nome, idade FROM suaTabela

Observem que a subquery select from dual não tem aplicação pratica alguma, somente irá impor ao Oracle a determinação do conjunto de resultados e dessa forma gerar o mecanismo de scalar subquery caching, onde iremos obter um ganho de performance em torno de 15% a 20%.

Petter Rafael
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.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 325 outros assinantes

Busca

julho 2020
DSTQQSS
 1234
567891011
12131415161718
19202122232425
262728293031 

Categorias