2010-08-31 10 views

risposta

9

Un indice di chiave inversa (in Oracle) è solo un indice regolare (albero B) con i tasti invertiti (1234 diventa 4321). Questo potrebbe impedire indici sbilanciati se aggiungi chiavi incrementali. Rende anche impossibili le scansioni dei range, quindi dovresti sapere cosa stai facendo quando usi questo.

Un indice bitmap è completamente diverso da un indice B-tree. Si può pensare a un array di bit lunghi per ogni valore chiave, con una voce per ogni riga, impostata su true se la riga ha questo valore, false se non. Funziona meglio (rispetto agli indici B-tree) per le colonne con solo alcuni valori distinti (solo MASCHILE, FEMMINA per esempio). È possibile comprimere questi array di bit e quindi diventano molto compatti e veloci da analizzare.

Il problema principale con gli indici bitmap è che è molto lavoro aggiornarli, in modo che siano più adatti per gli scenari di magazzino, in cui i dati vengono caricati in un batch notturno e quindi solo interrogati (e non modificati) durante il giorno.

Wikipedia ha anche un buon page about bitmap indexes.

+0

Grazie mille per il tuo aiuto Thilo..Ma sarebbe bello se tu potessi darmi il diagramma logico di un indice bitmap. – Gangu

+0

Wikipedia ha uno schema. – Thilo

+0

Ho capito bene. :-))))) – Gangu