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

Påvirker Sql JOIN-ordren ydeevnen?

Sammenkædningsrækkefølgen i SQL2008R2-serveren påvirker utvivlsomt forespørgselsydeevnen, især i forespørgsler, hvor der er et stort antal tabelsammenføjninger med, hvor-klausuler anvendes mod flere tabeller.

Selvom join-ordren ændres i optimering, forsøger optimizeren ikke alle mulige join-ordrer. Den stopper, når den finder, hvad den betragter som en brugbar løsning, da selve optimeringshandlingen bruger dyrebare ressourcer.

Vi har set forespørgsler, der optrådte som hunde (1 min + udførelsestid) komme ned til sub-sekund ydeevne blot ved at ændre rækkefølgen af ​​join-udtrykkene. Bemærk dog, at dette er forespørgsler med 12 til 20 joinforbindelser, og hvor klausuler findes på flere af tabellerne.

Tricket er at indstille din ordre for at hjælpe forespørgselsoptimereren med at finde ud af, hvad der giver mening. Du kan bruge Force Order, men det kan være for stift. Prøv at sikre dig, at din joinordre starter med de tabeller, hvor de vil reducere data mest gennem where-klausuler.



  1. en bedre tilgang end at gemme mysql-adgangskode i almindelig tekst i konfigurationsfil?

  2. Fjernelse af sporfiler med ADRCI

  3. Hvordan ændres en PG-kolonne til NULLABLE TRUE?

  4. org.postgresql.util.PSQLEundtagelse:Store objekter må ikke bruges i auto-commit-tilstand