Il secondo indice è diverso e non è ridondante per sé.
Che ne dite di questa query:
SELECT DISTINCT ColA FROM TABLE WHERE ColA IS NOT NULL;
Oracle può rispondere a questa domanda interamente da Index 2. Ora, indice 2 ci si aspetterebbe di essere di piccole dimensioni (meno blocchi) di indice 1. Questo vuol dire, si tratta di una indice migliore per la query sopra.
Se l'applicazione non fa mai una query che si adatta meglio di Indice2 Index1, allora è ridondante per l'applicazione.
indici sono sempre un compromesso prestazioni. Quando viene eseguito un inserimento, aggiornamento o eliminazione, è necessario fare del lavoro supplementare per mantenere ciascun indice aggiuntivo.
questo è più che compensato dalla maggiore delle prestazioni fornite dal l'indice? Dipende dall'applicazione e dall'utilizzo dei dati.
fonte
2009-08-05 07:29:57
Questo è probabilmente proprio nel maggior parte dei casi, ma vedere la mia risposta per quando potrebbe essere sbagliato per eliminare l'indice di sovrapposizione. –