Em 10/09/2012 19:43, Fábio Telles Rodriguez escreveu: > > > Em 10 de setembro de 2012 18:33, Flávio Alves Granato > <[email protected] <mailto:[email protected]>> escreveu: > > Senhores, > > Quando é aconselhável o uso de procedures e quando não o é? Em > comparação com selects. > > > > Em geral, um SELECT puro é mais rápido que uma função no banco. Um bom > conhecimento de SQL o torna capaz de substituir muitas funções com > vários passos em um único SELECT ou num INSERT ... SELECT e por aí vai. > > Mas existem casos e casos. Um deles é a questão da segurança. Você não > quer dar permissão para o usuário ver todos registros e todas colunas > de uma tabela específica. Neste caso você pode criar uma VIEW ou dar > GRANTs por coluna (depende da versão do PG) e conseguir limitar as > colunas que pode ver. Com o SE-Postgres você consegue limitar as > linhas de uma tabela, mas pode ser um processo bem trabalhoso. Com uma > função, você pode exigir que um ou mais parâmetros sejam passados e a > consulta seja feita de maneira bem controlada. > > Existem alguns relatórios que podem se beneficiar no uso de PLs para > gerar arquivos e fazer alguns malabarismos. Mas em geral a minha regra > é sempre essa: > > Não use uma função para fazer o que você pode fazer com um único SELECT. > > O Euler tem um exemplo que é fantástico, de como validar um CPF com > apenas um SELECT: http://wiki.postgresql.org/wiki/CPF > (OK, ele no final encapsula tudo numa função, mas veja que na prática > é apenas um único SELECT. > Entendido, ajudou muito.
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
