STRAIGHT_JOIN tvinger sammenkædningsrækkefølgen af tabellerne, så table1 scannes i den ydre sløjfe og table2 i den indre løkke.
Optimizeren er ikke perfekt (selv om den stadig er ret anstændig), og den mest sandsynlige årsag er de forældede statistikker.
Nej, kun når optimeringsværktøjet er forkert. Dette kan være, hvis din datafordeling er alvorligt skæv eller ikke kan beregnes korrekt (f.eks. for rumlige eller fuldtekstindekser).
Du bør indsamle statistikken, bygge planerne for begge veje og forstå, hvad disse planer betyder.
Hvis du ser det:
-
Den automatisk genererede plan er ikke optimal og kan ikke forbedres på standardmåderne,
-
STRAIGHT_JOINversion er bedre, du forstår det altid og forstår hvorfor det vil det altid
, og brug derefter STRAIGHT_JOIN .