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

Sammenkædningsbetingelser på flere kolonner versus enkelt sammenkædning på sammenkædede kolonner?

Jeg tror, ​​at versionen med sammenkædning praktisk talt altid vil være langsommere.

Hvis nogen af ​​de kolonner, du sammenligner individuelt, har indekser, vil databasen normalt kunne bruge indekserne til at optimere sammenføjningen. Når du sammenligner sammenkædninger, skal den udføre fulde tabelscanninger, fordi resultatet af en beregning ikke vil være i indekset.

Og selvom kolonnerne ikke er indekseret, kan databasen stadig udføre sammenligningerne mere effektivt. Den sammenligner et par kolonner ad gangen og kan stoppe, så snart en af ​​disse sammenligninger mislykkes. Når du bruger sammenkædningen, skal den først kombinere alle kolonnerne i begge rækker og derefter foretage en strengsammenligning.

Endelig, hvis nogen af ​​kolonnerne er numeriske, vil sammenkædningen kræve det ekstra trin at konvertere tallet til en streng.



  1. Er 1 altid lig med '1' i SQL?

  2. Er det virkelig det værd at normalisere Toxi-måden? (3NF)

  3. Hvorfor tillader ORACLE ikke fortløbende nylinjetegn i kommandoer?

  4. Undslippe søgeordslignende kolonnenavne i Postgres