Olá,

Em 23 de novembro de 2012 10:58, Marcelo Silva <[email protected]> escreveu:

> Sim, o order by me garante a ordem exata que preciso (pelo menos
> pressupõe-se, rsrsrs)
>

Sim, ORDER BY ordernará de maneira que você especificar.

>
> Quando damos um SELECT * FROM TABELA (sem order by) pressupõem-se que os
> registros viram numa ordem natural em que foram inseridos,
> um resultado foram disso seria um tanto quanto estranho.
>

Baseado no que você pressupõe isso?

>
> Por exemplo, se dou um INSERT ele coloca o registro imediatamente antes do
> registro posicionado,
> se dou um append, ele vai até o ultimo registro e coloco após este.
>
> Quanto a saber a ordem em que estão dos registro sem um order by,
> a minha dúvida é simplesmente pra saber porque o postgres não mantem a
> ordem
> "natural"
>

Talvez a teoria dos conjuntos e o entendimento de como funcionam os blocos
de disco a nível físico deem uma visão mais clara a você.

>
> Em uma tabela DBF por exemplo, quando a abrimos ele mostra a ordem natural
> em que foram inseridos os registros
> se damos um update ele simplesmente atualiza a linha em questão e mantem a
> posição natural
> Pelo que vi, em bases como o Firebird, MySQL ele mantém essa ordem natural,
> pelo menos visivelmente, internamente não estudei o caso.
> Já o postgres como dito cancela o registro atual e insere um novo,
> interessante isso,
> mas ao mesmo tempo fico me perguntando se isso levaria a um inchaço
> desnecessário (olha quem está falando, rsrsrs) na base.
> E não tornaria o update mais lento ?
>

Não é que o PostgreSQL cancela o registro atual, ele faz uma marcação de
bloco, e gera um novo registro com a linha atualizada. Isso te ajuda a
entender um pouco o VACUUM também :)

>
> Será que esse procedimento adotado seria pra um caso de um desastre na base
> para a recuperação de dados antigos ?
>

Não entendi esta última frase sua.

>
>
> Marcelo Silva
> -------------------------------------------------------------
> Desenvolvedor: Delphi, PHP, ASP
>
> Cel: (11) 95052-1407 Tim
> Cel: (11) 99693-4251 Vivo
> msn: [email protected]
>
> Empresa: Perfil Medicina e Segurança do Trabalho
>
> -----Mensagem Original-----
> From: Osvaldo Kussama
> Sent: Friday, November 23, 2012 10:35 AM
> To: Comunidade PostgreSQL Brasileira
> Subject: Re: [pgbr-geral]Postgres muda a posição do registro no update?
>
> Em 23/11/12, Marcelo Silva<[email protected]> escreveu:
> > Pessoal, o postgres muda a posição do registro quando é executado um
> > update,
> > é isso mesmo ?
> >
> > Por exemplo, tenho as linhas:
> >
> > Nome  Qtd
> > Joao       3
> > Maria     2
> > Jose       1
> >
> > Se eu mudo a quantidade, fica
> >
> > Nome   Qtd
> > Maria      2
> > Joao        4
> > Jose        2
> >
> > Sem o uso de “order by” percebe-se que ele muda a posição
> >
>
>
> Em um comando SELECT o PostgreSQL só garante uma ordem dos registros
> retornados se for especificada a cláusula ORDER BY.
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a