Tunning Oracle PL/SQL: minimizando o uso de conversão de datatype

[ad#texto]

Tunning em aplicações Oracle PL/SQL em primeiro momento se concentram em otimizar a arquitetura implementada no banco de dados e também na otimização das query´s, pois estes são os dois maiores vilões de uma baixa performance, contudo alguns pequenos truques podem ajudar na otimização de uma aplicação Oracle PL/SQL.

A primeira (e mais simples) regra para melhorar a performance é minimizar as conversões de datatypes no Oracle.

Para quem não se lembra, ou nunca reparou, o Oracle PL/SQL faz algumas conversões implícitas de seus datatypes, veja um exemplo:

DECLARE
 texto CHAR(5);

BEGIN
 texto := 25;
END;

Veja que no exemplo acima atribuímos um inteiro para uma variável do tipo caracter e o Oracle fez implicitamente a conversão do datatype do valor enviado pela rotina PL/SQL, isso resume o processo de desenvolvimento e até mesmo deixaria o código-fonte PL/SQL “mais limpo”, porém isso é uma má prática quando falamos de performance, pois o ideal é o seguinte:

DECLARE
 texto CHAR(5);

BEGIN
 texto := ‘25’;
END;

E isso ocorre para qualquer tipo de conversão de datatype implícita ou explícita no Oracle PL/SQL, vejam mais exemplos:

DECLARE
 num NUMBER;
 texto CHAR(5);

BEGIN
 num :=  n + 15;      -- conversão implícita, é lenta
 num :=  n + 15.0;    -- sem conversão, mais rápido
 texto:= 25;          -- conversão implícita, é lenta
 texto:= TO_CHAR(25); -- conversão explícita, ainda é lenta
 texto:= '25';        -- sem conversão, mais rápido
END;

Descubra mais sobre ViamaisBLOG

Assine para receber nossas notícias mais recentes por e-mail.

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.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.