Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:Índice multicoluna único ou dois índices de coluna única


Depende...

É bastante improvável que um índice em apenas column1 será benéfico se você já tiver um índice composto em column1, column2 . Desde column1 é o índice principal, consultas na tabela que têm apenas column1 como um predicado poderá usar o índice composto. Se você estiver executando consultas com frequência que precisam fazer uma verificação completa do índice e a presença de column2 aumenta substancialmente o tamanho do índice, é possível que um índice apenas em column1 seria mais eficiente, pois a varredura completa do índice precisaria fazer menos E/S. Mas essa é uma situação bastante incomum.

Um índice em apenas column2 pode ser benéfico se algumas de suas consultas na tabela especificarem predicados apenas em column2 . Se houver relativamente poucos valores distintos de column1 , é possível que o Oracle possa fazer uma varredura de salto de índice usando o índice composto para satisfazer consultas que especificam apenas column2 como predicado. Mas uma varredura de salto provavelmente será muito menos eficiente do que uma varredura de intervalo, portanto, é razoavelmente provável que um índice em apenas column2 beneficiaria essas consultas. Se houver um grande número de valores distintos para column1 , a varredura de salto seria ainda menos eficiente e um índice apenas em column2 seria mais benéfico. Claro, se você nunca consultar a tabela usando column2 sem também especificar um predicado em column1 , você não precisaria de um índice apenas em column2 .