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