Grande Leandro,

> Embora não tenhamos as
> MATERIALIZED VIEWs do ISO SQL, temos maneiras de atender a mesma
> necessidade e, talvez, um desses guias aponte uma técnica melhor.

Já vi esse guia várias vezes...
Os requisitos de negócio não me permitem dar ao cliente visões
inconsistentes ou incompletas, logo a única opção (usando a terminologia do
link) é a 'eager materialized view'. As atualizações são tão leves quanto
possível. O volume de consultas é muito maior e não tem outra opção
conhecida de ser atendido senão pelas tabelas auxiliares atualizadas via
trigger. Atualizações individuais ou em grupos pequenos vão bem, o problema
é que o perfil desse cliente o torna o único a mexer em milhares de
registros de cada vez.

> Acho teus problemas sempre interessantes, dei falta de ti na última
PgConBR.

Hehe, quem sabe eu vá na próxima. ;-)
 

> Não sei se entendi a questão, mas realmente o SGBD não tem o encargo
> de dizer que tuplas foram alteradas ? devo ter entendido errado?

Não, você não entendeu errado, na realidade acertou na mosca, este é 
e-x-a-t-a-m-e-n-t-e  o meu problema!
O Postgres *não* me diz de forma eficiente quais tuplas foram alteradas por
um comando quando quero tratar todos os registros alterados usando uma trigger
FOR EACH STATEMENT. Como consequência, a única opção que me resta é a FOR
EACH ROW, que quando usada para uma atualização de 3000 registros é um
desastre.

Atenciosamente,

Mozart Hasse


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a