sql >> Database >  >> RDS >> Sqlserver

SQL Server 2005 - Volgorde van innerlijke joins

SQL is declaratief, dat wil zeggen dat de JOIN-volgorde er niet toe doet.

In de praktijk kan het echter een complexe vraag zijn als de optimizer niet alle opties onderzoekt (wat in theorie maanden zou kunnen duren).

Een andere optie is dat het een heel andere zoekopdracht is als je opnieuw ordent en je andere resultaten krijgt, maar dit is meestal met OUTER JOINs.

En het kan ook de manier zijn waarop de ON-component is gespecificeerd. Het moet veranderen als u de FROM-component opnieuw ordent. Tenzij je de oudere (en slechte) JOIN-in-the-WHERE-clausule gebruikt.

Ten slotte, als het een probleem is, kunt u haakjes gebruiken om de evaluatievolgorde te wijzigen om uw bedoelingen duidelijk te maken, bijvoorbeeld filter eerst op een grote tabel om een ​​afgeleide tabel te genereren.



  1. levenshtein alternatief

  2. Database-ontwerp voor zeer grote hoeveelheden gegevens

  3. Hoe de schijfruimte te berekenen die door de MySQL-tabel wordt gebruikt op basis van kolomgegevenstypes en het aantal rijen?

  4. Probleem bij het opslaan van waarde in de database