Índices multidimensionais em bancos de dados

10

Quais bancos de dados usam índices multidimensionais reais? A Oracle está sempre usando vários índices para obter dados das tabelas ou sempre será aquela que parece ter a maior seletividade? E quanto a outros dbms?

paweloque
fonte

Respostas:

9

O Oracle tem um tipo de índice chamado Bitmap Index, que ele descreve como ...

Um índice de banco de dados no qual o banco de dados armazena um bitmap para cada chave de índice, em vez de uma lista de rowids.

Se uma tabela tiver um índice de bitmap ou uma dica for usada, ela poderá usar um plano de acesso de bitmap em índices de árvore B regulares . Os índices de bitmap podem ser unidos, unidos e cruzados.

Há uma excelente explicação em use-the-index-luke.com, na qual inclui as seguintes implementações da combinação de vários índices da Árvore B:

DB2: O DB2 suporta acesso múltiplo ao índice no LUW 9r7 (usando um bitmap dinâmico) e no zOS v10 .

MySQL: O MySQL possui uma otimização de mesclagem de índice iniciando no release 5.0.

Oracle O banco de dados Oracle usa BITMAP CONVERSIONs para combinar vários índices dinamicamente (apresentado com o 9i).

PostgreSQL O PostgreSQL usa bitmaps para combinar vários índices desde a versão 8.1.

SQL Server O SQL Server pode usar vários índices ("Index Intersect") começando na V7.0 usando um algoritmo de hash.

Consulte também esta pergunta StackOverflow, na qual a primeira resposta diz que o SQL Server faz algo semelhante aos índices de bitmap usando interseção de índice.

A indexação de bitmap eficiente e flexível para consultas complexas de semelhança é a referência mais próxima que eu encontrei associando índices de bitmap à palavra multidimensional. Multidimensional parece ser mais uma maneira de usar índices do que um atributo deles.

Leigh Riffel
fonte
6

O SQL Server pode executar " Interseção de índice ". E no MSDN .

É isto que você quer dizer?

gbn
fonte
exatamente! Existe algo comparável no oracle?
paweloque
11
er ... não sei. Eu sou um macaco MS.
GBN
5

Possivelmente os índices de bitmap da Oracle são o que você está procurando. Tipos de índice Oracle .

Eu acho que eles permitem união e interseção. Mas admito que não estou familiarizado com eles.

bernd_k
fonte