sql >> Databasteknik >  >> RDS >> Oracle

Hur och när används index i INSERT- och UPDATE-operationer?

För UPDATE-satser kan index användas av optimeraren om den anser att indexet kan påskynda det. Indexet skulle användas för att hitta de rader som ska uppdateras. Indexet är också på ett sätt att säga en tabell, så om den indexerade kolumnen uppdateras måste den självklart UPPDATERA indexet också. Å andra sidan om du kör en uppdatering utan en WHERE-klausul kan optimeraren välja att inte använda ett index eftersom den måste komma åt hela tabellen, kan en fullständig tabellsökning vara effektivare (men kan fortfarande behöva uppdatera indexet ). Optimeraren fattar dessa beslut vid körning baserat på flera parametrar som om det finns giltig statistik mot tabellerna och indexen i fråga, hur mycket data som påverkas, vilken typ av hårdvara, etc.

För INSERT-satser, även om INSERT självt inte behöver indexet, kommer indexet också att behöva "infogas i", så det måste nås av Oracle. Ett annat fall där INSERT kan orsaka att indexet används är en INSERT så här:

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


  1. Främmande nycklar i alternativa scheman med Oracle?

  2. Hur man lägger till AD/BC-indikatorn till ett datum i Oracle

  3. Hur man får icke-grupperade kolumner i SQL-sats (liknande i MySQL)

  4. MySQL &PHP :Sök med flera nyckelord