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

Скрити функции в Oracle

"Пълното сканиране на таблицата не винаги е лошо. Индексите не винаги са добри."

Методът за достъп, базиран на индекс, е по-малко ефективен при четене на редове от пълното сканиране, когато го измервате по отношение на редовете, достъпни за единица работа (обикновено за логическо четене). Въпреки това много инструменти ще интерпретират пълното сканиране на таблицата като знак за неефективност.

Вземете пример, когато четете няколкостотин фактури от таблица с фактури и търсите начин на плащане в малка таблица за справка. Използването на индекс за проверка на таблицата за търсене за всяка фактура вероятно означава три или четири логически io на фактура. Въпреки това, пълното сканиране на таблицата за търсене в подготовка за хеш присъединяване от данните на фактурата вероятно ще изисква само няколко логически четения, а самото хеш присъединяване ще се извърши в паметта почти без никакви разходи.

Въпреки това много инструменти ще разгледат това и ще видят "пълно сканиране на таблицата" и ще ви кажат да опитате да използвате индекс. Ако го направите, може би току-що сте денастроили кода си.

Между другото, прекомерното разчитане на индекси, както в горния пример, води до повишаване на "коефициента на попадане в буферния кеш". Ето защо BCHR е предимно глупост като предсказател за ефективността на системата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Търсете, ако числото се съдържа в израз като:1-3,5,10-15,20

  2. Как да премахнете дубликатите от списъка, разделен със запетая, чрез regexp_replace в Oracle?

  3. Как да настроите целевата директория на архивния дневник в базата данни на Oracle

  4. SQL „И“ или „ИЛИ“ е на първо място?

  5. Когато извикам PreparedStatement.cancel() в JDBC приложение, наистина ли го убива в база данни на Oracle?