De fato, nas versões apartir da 8.2 (se nao me engano) o postgresql consegue "simular" um indice bitmap em memória, mas como disposto também em [1]:
A condição pode ser dividida em n utilizações separadas de um índice sobre uma condição where. Depois é verificado o operador. Depois de os resultados serem recuperados são juntados usando o operador. Para combinar os índices compostos, o sistema percorre cada índice necessário e cria um bitmap em memória, que fornece a localização das tuplas que verificam as condições dos índices. Os bitmaps são então unidos (tendo em conta a interrogação, usando ANDs ou ORs) e as tuplas reais são devolvidas. As tuplas são então visitadas pela ordem física que apresentam, por essa ser a ordem representada pelos bitmap, o que significa que qualquer ordenação do índice original é perdida, e que um passo extra de ordenação irá ser necessário no caso da interrogação incluir uma cláusula ORDER BY. Por esta razão e por ser necessário percorrer o índice um maior número de vezes, o otimizador em geral opta por utilizar um índice simples mesmo tendo outros índices disponíveis. Algumas boas literaturas que podem ser vista sobre o tema são: SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de Banco de Dados. Editora Makron Books. MOLINA, Hector Garcia; ULLMAN, Jeffrey D.; WIDOM, Jennifer. Database Systems – The complete book. Prentice Hall NAVATHE; ELMASRI. Sistema de Banco de Dados: Fundamentos e Aplicações. Editora LTC [1] http://www.postgresql.org/docs/8.4/static/indexes-bitmap-scans.html Att, -- Charly Frankl http://javadevilopers.blogspot.com/ [email protected] Linux user #391083 2009/10/5 Fabrízio de Royes Mello <[email protected]> > > 2009/10/5 Euler Taveira de Oliveira <[email protected]> > >> Como eu disse anteriormente, o planejador pode produzir um plano que >> utiliza >> mais do que um índice por tabela. Por exemplo, em junções com a mesma >> tabela e >> quando a tabela aparece em mais de um nó no plano de execução. >> >> > Tranquilo... isso eu sabia... mas no "mesmo nó" somente com o bitmapscan > para utilizar mais de um índice né? > > > -- > Fabrízio de Royes Mello > >> Blog sobre TI: http://fabriziomello.blogspot.com > > _______________________________________________ > 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
