sql >> Database teknologi >  >> RDS >> Oracle

Hvordan og hvornår bruges indekser i INSERT og UPDATE operationer?

For UPDATE-udsagn kan indeks bruges af optimeringsværktøjet, hvis det vurderer, at indekset kan fremskynde det. Indekset vil blive brugt til at finde de rækker, der skal opdateres. Indekset er også en tabel på en måde, så hvis den indekserede kolonne bliver opdateret, skal den naturligvis også OPDATERE indekset. På den anden side, hvis du kører en opdatering uden en WHERE-klausul, kan optimeringsværktøjet vælge ikke at bruge et indeks, da det skal have adgang til hele tabellen, kan en fuld tabelscanning være mere effektiv (men skal muligvis stadig opdatere indekset ). Optimeringsværktøjet træffer disse beslutninger under kørsel baseret på flere parametre, såsom om der er gyldig statistik mod de pågældende tabeller og indekser, hvor meget data der er påvirket, hvilken type hardware osv.

For INSERT-sætninger, selvom INSERT selv ikke har brug for indekset, skal indekset også 'indsættes i', så det skal tilgås af oracle. Et andet tilfælde, hvor INSERT kan få indekset til at blive brugt, er et INSERT som dette:

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


  1. forbindende orakel fra r

  2. Sådan grupperes kontinuerlige områder ved hjælp af MySQL

  3. Oracle Connection Pooling i .Net

  4. MYSQL LEFT JOIN MED GROUP BY