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

Responder a