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
