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

Come verificare se l'indice viene utilizzato o meno in Oracle

In Oracle SQL Developer, quando hai SQL nel foglio di lavoro, c'è un pulsante "Spiega piano", puoi anche premere F10. Dopo aver eseguito il piano Spiega, verrà visualizzato nella vista inferiore di SQL Developer. C'è una colonna "OBJECT_NAME", che ti dirà quale indice viene utilizzato. Ad esempio, in una query che ho appena eseguito, nella colonna di sinistra (OPERATION) mostra prima "SELECT STATEMENT", poi SORT (AGGREGATE) e poi INDEX (RANGE SCAN) e poi nella colonna OBJECT_NAME mostra TICKER_IDX1, che è il nome di un indice sulla mia tabella.

Quindi puoi vedere tramite la colonna OBJECT_NAME quali indici vengono utilizzati.

Può succedere che Oracle Cost Based Optimizer scelga un piano di esecuzione non ottimale. Molte volte l'aggiornamento delle statistiche risolverà il problema. Altre scelte consistono nell'aggiungere indici aggiuntivi, in altre parole un indice a più colonne. Puoi suggerire un'istruzione SQL, ma raramente è necessaria. Inoltre, è possibile riscrivere la query.