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

Responder a