Wskaźniki wielowymiarowe w bazach danych

10

Które bazy danych używają rzeczywistych wskaźników wielowymiarowych? Czy wyrocznia używa kiedykolwiek kilku wskaźników, aby uzyskać dane z tabel, czy zawsze będzie przyjmować taki, który wydaje się mieć najwyższą selektywność? Co powiesz na inne dbms?

pawelokowy
źródło

Odpowiedzi:

9

Oracle ma typ indeksu zwany indeksem bitmapowym, który opisuje jako ...

Indeks bazy danych, w którym baza danych przechowuje mapę bitową dla każdego klucza indeksu zamiast listy wierszy.

Jeśli tabela ma indeks bitmapowy lub podpowiedź jest użyta, można użyć planu dostępu do bitmapy na zwykłych indeksach B-drzewa . Indeksy bitmapowe można łączyć, łączyć i przecinać.

Istnieje doskonałe wytłumaczenie na use-the-index-luke.com, gdzie zawiera następujące implementacje łączenia wielu indeksów B-Tree:

DB2: DB2 obsługuje dostęp do wielu indeksów w LUW 9r7 (przy użyciu dynamicznej mapy bitowej) i w systemie zOS v10 .

MySQL: MySQL ma optymalizację scalania indeksu od wersji 5.0.

Oracle Baza danych Oracle wykorzystuje KONWERSJE BITMAP do łączenia wielu indeksów w locie (wprowadzonych z 9i).

PostgreSQL PostgreSQL używa map bitowych do łączenia wielu indeksów od wersji 8.1.

SQL Server SQL Server może korzystać z wielu indeksów („Index Intersect”), począwszy od wersji 7.0 przy użyciu algorytmu skrótu.

Zobacz także to pytanie StackOverflow, w którym pierwsza odpowiedź mówi, że SQL Server robi coś podobnego do indeksów bitmapowych za pomocą przecięcia indeksu.

Wydajne i elastyczne indeksowanie map bitowych dla złożonych zapytań o podobieństwo to najbliższe odniesienie, jakie znalazłem kojarzące indeksy bitmapowe ze słowem wielowymiarowym. Wydaje się, że wielowymiarowość jest raczej sposobem na użycie indeksów niż ich atrybutem.

Leigh Riffel
źródło
6

SQL Server może wykonać „ Przecięcie indeksu ”. I na MSDN .

Czy to masz na myśli?

gbn
źródło
dokładnie! Czy w wyroczni jest coś porównywalnego?
paweloque
1
er ... nie wiem. Jestem małpą ze stwardnienia rozsianego.
gbn 15.03.11
5

Możliwe, że indeksy bitmapowe Oracle są tym, czego szukasz. Typy indeksu Oracle .

Myślę, że pozwalają na zjednoczenie i skrzyżowanie. Ale przyznaję, że ich nie znam.

bernd_k
źródło