Oracle
 sql >> Database >  >> RDS >> Oracle

Un indice partizionato globalmente è migliore (più veloce) di un indice non partizionato?

Sono abbastanza sicuro che tu abbia trovato questo riferimento nella tua ricerca - Tabelle e indici partizionati . Comunque fornisco un link ad esso se qualcuno è interessato, questo è un ottimo materiale sul partizionamento.

Dritto al punto:l'indice partizionato scompone l'indice in pezzi (16 nella tua situazione) e diffonde i dati a seconda della chiave di partizionamento hash. Quando vuoi usarlo, Oracle "calcola" l'hash della chiave e determina in quale sezione continuare con la ricerca.

Sapendo come funziona la ricerca dell'indice, su dati davvero enormi penso che sia meglio scegliere l'indice partizionato per diminuire l'albero degli indici che attraversi (indice normale). Dipende davvero dai dati, che sono nella tabella (come è composto il normale albero dell'indice) e sta effettuando l'hashing e il salto diretto al nodo inferiore più velocemente del normale attraversamento dell'albero dal nodo iniziale.

Infine, devi essere più sicuro dei risultati del test. Se una tecnica dà risultati migliori sui tuoi dati esatti rispetto ad altre, non preoccuparti di implementarla.