Em 10 de setembro de 2012 18:33, Flávio Alves Granato < [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. []s -- Atenciosamente, Fábio Telles Rodriguez blog: http:// <http://www.midstorm.org/~telles/>http://tellesr.wordpress.com e-mail / gtalk / MSN: [email protected] Skype: fabio_telles
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
