sql >> Databasteknik >  >> RDS >> Sqlserver

Påverkar Sql JOIN-order prestanda?

Sammanfogningsordning i SQL2008R2-servern påverkar otvivelaktigt frågeprestanda, särskilt i frågor där det finns ett stort antal tabellkopplingar med där satser tillämpas mot flera tabeller.

Även om sammanfogningsordern ändras i optimeringen, försöker optimeraren inte alla möjliga sammanfogningsorder. Det slutar när det hittar vad det anser vara en fungerande lösning eftersom själva handlingen att optimera använder värdefulla resurser.

Vi har sett frågor som fungerade som hundar (1 min + körningstid) komma ner till subsekundans prestanda bara genom att ändra ordningen på join-uttrycken. Observera dock att det här är frågor med 12 till 20 joins och där klausuler finns på flera av tabellerna.

Tricket är att ställa in din beställning för att hjälpa frågeoptimeraren att ta reda på vad som är vettigt. Du kan använda Force Order men det kan vara för stel. Försök att se till att din join-order börjar med tabellerna där de kommer att reducera data mest genom where-klausuler.



  1. alembic util kommandofel kan inte hitta identifierare

  2. Postgresql Trunkeringshastighet

  3. Ta bort dubbletter av rader i MySQL

  4. ROWID (oracle) - någon användning för det?