PL/SQL: o que é e quando usar?

Olá pessoal,

No artigo de hoje vou falar um pouco sobre PL/SQL, a linguagem procedural do Oracle Database.

Todos os SGBDs (Sistemas Gerenciadores de Banco de Dados) que eu conheço possuem uma linguagem de programação própria, que estende comandos e instruções não contempladas em SQL. Como exemplos, podemos citar o Oracle Database, que possui a linguagem PL/SQL, o SQL Server que possui a linguagem Transaction SQL e o DB2 que possui a linguagem SQL PL. Essas linguagens foram criadas para atender a necessidade de se criar programas dentro do próprio banco de dados e são extremamente úteis para executar tarefas de manutenção e para otimizar transações das aplicações que acessam o banco. No meu blog você encontrará vários artigos que usam código PL/SQL dentro destes cenários de manutenção e otimização, como por exemplo:

– Otimizando a performance de aplicações com stored procedures:
http://www.fabioprado.net/2011/09/otimizando-performance-de-aplicacoes.html

– PL/SQL mais rápido: Quando usar CURSORES ou collections (BULK COLLECT em NESTED TABLES)?
http://www.fabioprado.net/2011/05/plsql-mais-rapido-quando-usar-cursores.html

– Recompilando objetos inválidos no Oracle Database:
http://www.fabioprado.net/2011/05/recompilando-objetos-invalidos-no.html

Uma das principais vantagens da linguagem PL/SQL é permitir que você escreva programas que ficam armazenados no banco de dados e que podem ser reutilizados por qualquer aplicação/usuário que acesse o banco. Segundo Thomas Kyte, um dos maiores especialistas em Oracle do mundo, PL/SQL é a forma mais rápida de processar dados em Bancos de Dados Oracle. Entenda “processar dados” como não apenas submeter instruções SQL (UPDATE, SELECT, INSERT e DELETE) para o banco, mas sim, efetuar transações que consistem de várias estruturas de decisão, loops e outros tipos de processamento.

Como qualquer linguagem de programação, em PL/SQL é possível escrever código bom ou ruim. Para evitar enganos e não escrever código ruim, que também podem ser cometidos em qualquer outra linguagem, é necessário entender bem a estrutura do código PL/SQL, os detalhes de sua implementação e até mesmo como ele interage com código SQL.

Bom, hoje eu paro por aqui! Se quiserem conhecer melhor a linguagem PL/SQL e escrever código bem estruturado e com boa performance, eu ensino estes itens no meu treinamento de PL/SQL.

[]s


4 Comentários

Alessandro Albuquerque
1

Regras de negócio e processamento de estruturas de dados em banco de dados: não, obrigado.

Fábio Prado
2

Alessandro, vc comentou sobre um ponto que normalmente gera discussão em minhas aulas. Concordo com vc que regras de negócio não devem ficar no Banco de Dados (BD).
Além de ser DBA, também sou desenvolvedor e também aprendi desde a época da faculdade que as regras de negócio não devem ficar no BD, porém, quando vc tem aplicações críticas, que exigem alta performance, vale a pena vc pensar se não vale a pena vc deixar de fazer algo que “filsoficamente” é correto e mais bonito, em benefício da performance da aplicação! As aplicações com stored procedures são muito rápidas. Já trabalhei no Submarino e em diversos outros lugares em que a performance das aplicações era crucial para o negócio, nestes casos sempre usavámos stored procedures. Veja o artigo que escrevi em meu blog sobre o desempenho de stored procedures: http://www.fabioprado.net/2011/09/otimizando-performance-de-aplicacoes.html.
Att,
Fábio Prado

Douglas
3

Olá,
Estou estudando PL SQL, mas minha área é totalmente diferente de DB, vendo este post, e pouquíssimos materiais na internet sobre Oracle, Na sua opinião, ainda é plausível estudar PL, ou estou perdendo tempo…?
Pois a maioria das empresas em que trabalhei sempre utilizei TS, qual dica você me daria, sobre o tema.
Vejo que o mercado também são raras as vagas na área que envolve SGBD Oracle, Será que estou retrocedendo?
Se você puder me dar um feedback, ficarei extremamente grato, abraço!

Fábio Prado
4

Douglas, sobre materiais de Oracle, discordo um pouco de você e acredito que há muita coisa sim na Internet, só tem que garimpar para encontrar o que realmente é bom! Você pode inclusive ver documentações completas sobre PL/SQL totalmente online no site da Oracle (docs.oracle.com). Sobre estudar PL/SQL acho que é válido sim, pois participo de vários grupos de WhatsApp relacionados a tecnologia Oracle e sempre vejo gente precisando contratar profissionais com conhecimentos de PL/SQL. Na questão sobre vagas que envolvem Oracle, acabei de pesquisar no site https://www.adzuna.com.br a palavra Oracle e encontrei 2.951 vagas. É pouco? Talvez menos do que Java, mas não é pouco. Acredito que tem sim diminuído a qtde de vagas em Oracle, pois existem hoje muitos outros SGBDRs, mas pouco não é ainda não!
[]s

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!