Sono interessato a scoprire se esiste un vantaggio in termini di prestazioni per il partizionamento di una colonna numerica che è spesso l'obiettivo di una query. Attualmente ho una visione materializzata che contiene ~ 50 milioni di record. Quando si utilizza un indice b-tree normale e la ricerca da questa colonna numerica ottengo un costo di 7 e risultati delle query in circa 0,8 secondi (con cache non innescata). Dopo aver aggiunto una partizione hash globale (con 64 partizioni) per quella colonna, ottengo un costo di 6 e i risultati delle query in circa 0,2 secondi (sempre con cache non innescata).Un indice partizionato globalmente migliore (più veloce) di un indice non partizionato?
La mia prima reazione è che l'indice partizionato ha migliorato le prestazioni della mia query. Tuttavia, mi rendo conto che questa potrebbe essere solo una coincidenza e potrebbe dipendere totalmente dai valori ricercati o da altri di cui non sono a conoscenza. Quindi la mia domanda è: c'è un vantaggio in termini di prestazioni nell'aggiungere una partizione hash globale a una colonna numerica su una tabella di grandi dimensioni o è il costo di determinare quali partizioni di indice eseguire la scansione in eccesso dal costo di eseguire una scansione dell'intervallo completo su un partizione non indicizzata?
Sono sicuro che questo, come molte domande Oracle, può essere risolto con un "dipende". :) Sono interessato ad apprendere quali fattori dovrei considerare per determinare i benefici di ciascun approccio.
Grazie!