Olá 2009/10/26 Osvaldo Kussama <[email protected]>
> 2009/10/26 Rodrigo Sperb <[email protected]>: > > Olá a todos, > > > > Eu tenho uma função implementada em PL\PgSQL que itera sempre pegando a > > linha do topo após ordenar por uma certa coluna. Isso se repete em todas > > iterações, e como faço atualizações nessa tabela (é uma "priority queue", > > para quem é familiarizado com notação matemática...) no intermédio, não > > possa ter a ordenação pré-estabelecida e sempre pegar o topo > simplesmente... > > Preciso reordenar sempre. > > > > Acontece que isso leva algum tempo e eu preciso melhorar a performance do > > meu algoritmo. Ele é parte da minha tese de mestrado aqui na Holanda. Meu > > orientador me comentou que poderíamos ter as posições pré-definidas e > fazer > > atualizações "inteligentes", mantendo cada registro na devida posição que > > deve ocupar... Mas ele ainda não me disse nada de como fazer. Queria, > então, > > saber se alguém tem alguma idéia de como se pode fazer algo assim? > > > > > No PostgreSQL não existe garantia de qualquer tipo de ordenação dos > dados recuperados a não ser utilizando a cláusula ORDER BY. > > Seu caso parece ser bastante específico. Se o que deseja é recuperar o > último registro incluído ou alterado *talvez* a coluna do sistema ctid > possa ajudá-lo: > http://www.postgresql.org/docs/current/interactive/ddl-system-columns.html > > Ou você pode criar uma coluna especifica e referenciar o que procura. Como o Osvaldo falou é um caso bem específico. -- Marcelo Costa www.marcelocosta.net ------------------------------------------------- “You can't always get what want”, Doctor House in apology to Mike Jagger
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
