Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle:Единичен многоколонен индекс или два единични колонни индекса

Зависи...

Малко вероятно е индекс само върху column1 ще бъде от полза, ако вече имате съставен индекс на column1, column2 . От column1 е водещият индекс, заявки към таблицата, които имат само column1 като предикат ще може да използва съставния индекс. Ако често изпълнявате заявки, които трябва да направят пълно сканиране на индекса и наличието на column2 значително увеличава размера на индекса, възможно е индекс само върху column1 би било по-ефективно, тъй като пълното сканиране на индекса ще трябва да прави по-малко I/O. Но това е доста необичайна ситуация.

Индекс само върху column2 може да е от полза, ако някои от вашите заявки към таблицата указват предикати само на column2 . Ако има сравнително малко различни стойности на column1 , възможно е Oracle да направи сканиране за прескачане на индекс, използвайки съставния индекс, за да удовлетвори заявки, които указват само column2 като предикат. Но сканирането с прескачане вероятно ще бъде много по-малко ефективно от сканирането на диапазон, така че е разумно вероятно индексът да е само на column2 биха били от полза за тези запитвания. Ако има голям брой отделни стойности за column1 , сканирането с пропускане би било още по-малко ефективно и индекс само върху column2 би било по-полезно. Разбира се, ако никога не правите заявки към таблицата, като използвате column2 без също да указвате предикат на column1 , няма да имате нужда от индекс само върху column2 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се пусне току-що създадена таблица

  2. Грешки при инсталиране на jdk 1.7 в linux

  3. Защо не мога да принудя Oracle 11g да консумира повече процесори за една SQL заявка

  4. изчислете текущия баланс в заявка на Oracle

  5. CURRENT_TIMESTAMP() Функция в Oracle