Záleží na...
Je docela nepravděpodobné, že se index nachází pouze na column1
bude užitečné, pokud již máte složený index na column1, column2
. Od column1
je hlavní index, dotazy na tabulku, které mají pouze column1
jako predikát bude moci používat složený index. Pokud často spouštíte dotazy, které potřebují provést úplnou kontrolu indexu a přítomnost column2
podstatně zvětšuje velikost indexu, je možné, že index právě na column1
by bylo efektivnější, protože úplné indexové skenování by muselo provádět méně I/O. Ale to je dost neobvyklá situace.
Index pouze ve column2
může být užitečné, pokud některé z vašich dotazů na tabulku specifikují predikáty pouze na column2
. Pokud existuje relativně málo různých hodnot column1
, je možné, že by Oracle mohl provést skenování přeskočení indexu pomocí složeného indexu, aby uspokojil dotazy, které specifikují pouze column2
jako predikát. Skenování přeskakováním však bude pravděpodobně mnohem méně efektivní než skenování rozsahu, takže je přiměřeně pravděpodobné, že index pouze ve column2
by tyto dotazy prospěly. Pokud existuje velký počet různých hodnot pro column1
, skenování přeskakování by bylo ještě méně efektivní a index by byl pouze na column2
by bylo prospěšnější. Samozřejmě, pokud se nikdy nedotazujete na tabulku pomocí column2
bez uvedení predikátu na column1
, nepotřebujete index pouze na column2
.