sql >> Database teknologi >  >> RDS >> Sqlserver

Vælg hvor klausulevalueringsrækkefølge

Der er ingen garantier for evalueringsrækkefølge. Optimeringsværktøjet vil forsøge at finde den mest effektive måde at udføre forespørgslen på ved hjælp af tilgængelig information.

I dit tilfælde, da c er indekseret og d ikke er det, bør optimeringsværktøjet kigge i indekset for at finde alle rækker, der matcher prædikatet på c, og derefter hente disse rækker fra tabeldataene for at evaluere prædikatet på d.

Men hvis det fastslår, at indekset på c ikke er særlig selektivt (selvom det ikke er i dit eksempel, er en kønskolonne sjældent nyttigt indekseret), kan den beslutte at udføre tabelscanningen alligevel.

For at bestemme udførelsesrækkefølgen bør du få en forklarende plan for din forespørgsel. Vær dog klar over, at planen kan ændre sig afhængigt af, hvad optimeringsværktøjet mener er den bedste forespørgsel lige nu.



  1. Primefaces Autofuldførelse fra enorm database handler ikke hurtigt

  2. Brugerdefinerede felter i Many2Many JoinTable

  3. ny linjeseparator virker ikke for group_concat-funktionen

  4. Håndtering af MySQL fuldtekst specialtegn