Depende...
Es bastante improbable que un índice solo en column1
será beneficioso si ya tiene un índice compuesto en column1, column2
. Desde column1
es el índice principal, consulta en la tabla que tiene solo column1
como predicado podrá utilizar el índice compuesto. Si ejecuta consultas con frecuencia que necesitan realizar un análisis completo del índice y la presencia de column2
aumenta sustancialmente el tamaño del índice, es posible que un índice en solo column1
sería más eficiente ya que el escaneo de índice completo necesitaría hacer menos E/S. Pero esa es una situación bastante inusual.
Un índice en solo column2
puede ser beneficioso si algunas de sus consultas en la tabla especifican predicados solo en column2
. Si hay relativamente pocos valores distintos de column1
, es posible que Oracle pueda realizar un escaneo de omisión de índice utilizando el índice compuesto para satisfacer las consultas que solo especifican column2
como predicado. Pero es probable que un escaneo salteado sea mucho menos eficiente que un escaneo de rango, por lo que es bastante probable que un índice solo en column2
beneficiaría esas consultas. Si hay una gran cantidad de valores distintos para column1
, el escaneo salteado sería aún menos eficiente y un índice solo en column2
sería más beneficioso. Por supuesto, si nunca consulta la tabla usando column2
sin especificar también un predicado en column1
, no necesitaría un índice solo en column2
.