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

Как да разберете какво е добър индекс?

Това зависи от това какво разбирате под "добро" и "лошо". По принцип трябва да осъзнаете, че всеки индекс, който добавяте, ще увеличи ефективността при всяко търсене по тази колона (така добавянето на индекс към колоната „фамилно име“ на таблица с хора ще увеличи производителността при заявки, които имат „където фамилия =“ в тях), но намалете производителността на запис в цялата таблица.

Причината за това е, когато добавяте или актуализирате ред, той трябва да добави или актуализира както самата таблица, така и всеки индекс, на който членува този ред. Така че, ако имате пет индекса в таблица, всяко допълнение трябва да пише на шест места - пет индекса и таблицата - и актуализация може да докосне до шест места в най-лошия случай.

Създаването на индекс е балансиране между скоростта на заявка и скоростта на запис. В някои случаи, като например datamart, който се зарежда с данни само веднъж седмично при работа за една нощ, но се отправя хиляди пъти на ден, има много смисъл да се претоварва с индекси и да се ускорят заявките колкото е възможно повече. В случай на онлайн системи за обработка на транзакции обаче, вие искате да опитате да намерите баланс между тях.

Така че накратко, добавете индекси към колони, които се използват много при избрани заявки, но се опитайте да избегнете добавянето на твърде много и така първо добавете най-използваните колони.

След това е въпрос на тестване с натоварване, за да се види как реагира производителността при производствени условия, и много настройки, за да се намери приемлив баланс.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle RAC и последователности

  2. Кога трябва да използвам точка и запетая срещу наклонена черта в Oracle SQL?

  3. синтактична грешка при деклариране на променливи в процедура pl/sql

  4. Създаване на Java приложение в Oracle JDeveloper, част 1

  5. Сравнете низове, игнориращи акценти в SQL (ORACLE)