sql >> Databasteknik >  >> RDS >> Sqlserver

LEFT JOIN Betydligt snabbare än INNER JOIN

Den vänstra kopplingen verkar vara snabbare eftersom SQL tvingas göra det mindre urvalet först och sedan ansluta till denna mindre uppsättning poster. Av någon anledning vill optimeraren inte göra detta naturligt.

3 sätt att tvinga sammanfogningarna att ske i rätt ordning:

  1. Välj den första delmängden av data i en temporär tabell (eller tabellvariabel) och gå sedan med i den
  2. Använd vänsterkopplingar (och kom ihåg att detta kan returnera olika data eftersom det är en vänsterkoppling inte en inre koppling)
  3. använd nyckelordet FORCE ORDER. Observera att om tabellstorlekar eller scheman ändras kanske frågeplanen inte är korrekt (se https://dba.stackexchange.com/questions/45388/forcing-join-order )


  1. xampp php 7 Anrop till odefinierade funktioner (mysql &odbc)

  2. 2 sätt att formatera ett tal med ledande nollor i Oracle

  3. Basicdatasource-anslutningsproblem med timeout (med mysql)

  4. Oracle Infoga via Välj från flera tabeller där en tabell kanske inte har en rad