De fato... gatilhos são procedimentos de alto custo. Em alguns casos um rule
pode até ser um pouco mais barato.

No entanto deve-se realmente avaliar a necessidade de se armazenar uma
informação redundante como esta. Num sistema OLTP com muitas atualizações, é
melhor não gravar o campo calculado e avaliar o resultado durante a leitura,
num simples select ou num view. Se você estiver trabalhando com um BI com
vários cálculos, projeções, resumos e sistematizações... o uso de views
materializadas podem ser uma boa opção. Dá muito mais trabalho e a
complexidade aumenta um bocado. Para lançar mão deste tipo de recurso deve
haver uma boa justificativa e o desenvolvedor deve saber o que está fazendo.
Afinal, existem alguns tipos de view smaterializadas e várias formas de
implementa-las no PostgreSQL via PL. No mais, um sistema tradicional de Data
Warehouse costuma envolver bases separadas e todo um sistema de ETL para
fazer tudo isso.

Estou exagerando um pouco os fatos, só para ter uma idéia de onde você pode
ir parar, criando campos calculados... é claro que uma modelagem tradicional
não deve conter campos calculados. Em alguns momentos quebramos as regras, é
por isso que tem gente de usa tantas formas normais quanto as letras do
alfabeto ;-) Mas veja bem... apesar de toda regra existir para ser quebrada,
você deve avaliar muito bem quando quebra-la. Isto sempre vai ter um custo
mais tarde. Se você não tiver muita experiência com modelagem, vai descobrir
o preço que pagou por quebrar as regras muito tarde. Já vi gente perceber a
mancada somente depois de alguns anos com o sistema em produção, com
gargalos de performance terríveis. Concertar depois que o sistema entra em
produção é difícil, perigoso e muito trabalhoso.

Bom, por hoje é só pessoal,

[]s
Fábio Telles

Em 31/05/07, Leandro Guimarães Faria Corcete DUTRA <
[EMAIL PROTECTED]> escreveu:

Em Qua, 2007-05-30 às 08:27 -0300, Tiago José Adami escreveu:
> >>Por que essa paixão por gatilhos quando simples comandos SQL
> resolvem?
> Eu diria por causa do desempenho e usabilidade.

        Pelo contrário, gatilhos atrasam as atualizações e representam
efeitos
colaterais.


> Mas como trata-se de uma coluna em uma só tabela, acredito que uma
> análise mais detalhada poderia gerar uma View

        Por exemplo.


>  que estivesse preparada também para outras consultas.

        Não entendi esta parte.




--
site: http://www.midstorm.org/~telles/
e-mail: [EMAIL PROTECTED]
jabber: [EMAIL PROTECTED]
sip:[EMAIL PROTECTED]
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a