2011/6/28 Mozart Hasse <[email protected]>:
>
> Índices devem primar pela "seletividade"

Perfeitamente.

        Fábio, que te levou a dizer que deveríamos preferir primeiro os
atributos com menor seletividade?  Algum texto, testes?

        Para não dizer que a coisa é simples como parece — quase nunca é —, na
verdade, os índices devem obedecer primeiro uma ordem baseada no uso.  Assim,
devem ficar na frente os atributos mais usados em diversas consultas, para que
o índice possa ser usado pelas mais variadas consultas.

        Por exemplo, um índice ABC não será muito útil para uma consulta sobre
BC, mesmo que A seja mais seletivo que B.  Se as consultas BC forem
significativas, será mais interessante BCA que ABC.  Agora, se tanto consultas
sobre BC quanto AB forem igualmente significativas, será mais interessante
privilegiar AB, supondo que A seja mais seletivo que B, e avaliar a
conveniência dum segundo índice, esse sobre BC.

        A questão que ainda resta aí é o que seria ‘significativo’.
Basicamente, o que mais afeta os caminhos críticos do sistema, de acordo com
seus requisitos.  Porque isso só se pode saber ou com uma modelagem
absurdamente perfeita do comportamento do sistema (aplicação, rede, base de
dados, servidores, armazenamento, fase da Lua, incidência de neutrinos e
umidade atmosférica na região &c) ou, mais realisticamente, com testes.

        Em outras palavras, esses ‘devem’ que usamos (os índices ‘devem’
começar com os atributos mais seletivos, ou mais usados) são sempre relativos
ao comportamento real do sistema.  Portanto, não passam de regrinhas genéricas
que nos conduzem a uma primeira implementação a testar, assim como nos ajudam
a analisar os resultados dos testes.


-- 
Skype:leandro.gfc.dutra?chat           Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191             Google Talk: xmpp:[email protected]
+55 (11) 9406 7191                 ICQ: AIM:GoIM?screenname=61287803
sip:[email protected]  MSNIM:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a