2009/12/29 Mozart Hasse <[email protected]>:
>> Na verdade, chave serial é contradição em termos, porque se é serial
>> não vai garantir unicidade.
>
> Sim, mas para achar o registro e fazer JOINs, é o que há em termos de
> praticidade e desempenho
Depende, como sempre.
> especialmente se você quiser usar a chave para
> identificar alterações concorrentes sobre o mesmo registro
Nível de isolamento serializável, e de quebra a aplicação fica mais
robusta.
Agora me dei conta… será que teus problemas recorrentes de desempenho
não são por controle de transações na aplicação?
> se precisar alterar a chave natural de um registro numa tabela com um
> monte de tabelas filhas.
ON UPDATE CASCADE
> A melhoria é grande demais para ser ignorada, pois
> quase todos os índices ficarão menores
Nana-nina-não.
Ou melhor, depende. Tabela mãe pequena e pouco usada com tabelas
filhas grandes, pode ser, se não forçar junções demais.
Mas sempre haverá um índice a mais, tanto em disco quanto em memória,
ocupando também cache e exigindo atualizações.
> e com distribuição estatística mais
> evidente (do ponto de vista do banco de dados) usando uma PK numérica
> de um só campo.
Não.
> Além do mais, ninguém falou em não declarar chaves alternativas para
> evitar duplicidades.
Mas é o que costuma acabar acontecendo.
> Tudo bem, concordo que conceitualmente é uma atrocidade, mas estamos
> falando de modelo físico, não do modelo lógico...
Esse é o problema do SQL, falta de independência de dados.
Mesmo em SQL, os efeitos técnicos e culturais das chaves artificiais e
da normalização deficiente, que costumam andar juntos, geralmente acaba
prejudicando não só desempenho quanto robustez.
--
skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 9406 7191 gTalk: xmpp:[email protected]
+55 (11) 3854 7191 ICQ: aim:GoIM?screenname=61287803
+55 (11) 5546 8716 msnim:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral