P>

capaSQL15.JPG

Clique aqui para ler todos os artigos desta edição

Stored Procedures, Triggers e Views

Dúvida 1

 

Pergunta

Caro Professor,

Parabéns pelos artigos publicados na SQL Magazine! São de grande valia para os profissionais de software. Gostaria de saber sua opinião quanto a um assunto: nas empresas, parece que há duas linhas de pensamento quando o assunto é stored procedure, trigger e view. Uma delas defende o uso desses recursos para algumas rotinas mais pesadas. A outra segue a linha de que tudo deve ser acessado através de stored procedures e view, tanto na leitura quanto na escrita (inclusão, alteração e exclusão). Não se pode acessar as tabelas diretamente, por motivos de segurança e de "lock". O que você acha sobre isso? Há algum material (livro ou site) que aborde essa situação?

Abraços e obrigado,

André

 

Resposta

Olá André!

Quanto à sua pergunta: stored procedures são sempre bem-vindas, pois economizam largura de banda. Imagine enviar um batch com 500 linhas para ser executado no servidor. Agora troque as 500 linhas por uma única linha de chamada para a stored procedure. O que é mais rápido? Outra grande vantagem é que você não precisa ficar abrindo os fontes de seus programas para alterar o código, fora o fato da stored procedure ser muito mais maleável: se houver alguma alteração no negócio, você altera somente a stored procedures, sem a necessidade de abrir fontes e recompilar sua aplicação!

Mas a questão básica dessa discussão é a seguinte: em que camada você irá deixar as regras do seu negócio: na de aplicação ou banco? Tudo tem caminhado para que as regras de negócio fiquem no banco, pois além dos requisitos de segurança, deixam as aplicações mais eficientes e são mais fáceis de implementar, mais simples de administrar e convivem melhor com alterações.

Quanto justificar a criação de views por questões de segurança, acho desnecessário. Views são utilizadas para substituir select's complexos (exceção seja feita às indexed views, que materializam o select na forma de páginas de dados por questões de otimização).

Quanto aos locks, eles existem em views, stored procedures, batches. Na edição de número 5 da SQL Magazine, escrevi uma matéria exclusiva sobre como otimizar locks.  Você chegou a dar uma lida? Se você não possui esse exemplar, escreva para a SQL Magazine solicitando o seu.

Um grande abraço,

Paulo Ribeiro