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

Как и кога се използват индексите в операции INSERT и UPDATE?

За оператори UPDATE индексът може да се използва от оптимизатора, ако прецени, че индексът може да го ускори. Индексът ще се използва за намиране на редовете, които да бъдат актуализирани. Индексът също е таблица в известен смисъл, така че ако индексираната колона се актуализира, очевидно трябва да АКТУАЛИЗИРА и индекса. От друга страна, ако изпълнявате актуализация без клауза WHERE, оптимизаторът може да избере да не използва индекс, тъй като трябва да има достъп до цялата таблица, пълното сканиране на таблица може да е по-ефективно (но все пак може да се наложи да актуализира индекса ). Оптимизаторът взема тези решения по време на изпълнение въз основа на няколко параметъра, като например дали има валидни статистически данни за въпросните таблици и индекси, колко данни са засегнати, какъв тип хардуер и т.н.

За операторите INSERT, въпреки че самият INSERT не се нуждае от индекса, индексът също ще трябва да бъде „вмъкнат в“, така че ще трябва да бъде достъпен от oracle. Друг случай, при който INSERT може да причини използването на индекса, е INSERT като този:

INSERT INTO mytable (mycolmn)
SELECT mycolumn + 10 FROM mytable;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите набор от ключове (UniqueID) към временна таблица за по-късно INSERT в производствена таблица

  2. Oracle - Как да създадете потребител само за четене

  3. Изпълнете командата за импортиране на Oracle от Java и вижте изхода на конзолата

  4. Грешка в Oracle .Net ManagedDataAccess:Не можа да се зареди тип 'OracleInternal.Common.ConfigBaseClass' от сборка

  5. Наистина ли е по-добре да се използват нормализирани таблици?