Kolejność złączeń na serwerze SQL2008R2 bezsprzecznie wpływa na wydajność zapytań, szczególnie w zapytaniach, w których występuje duża liczba złączeń tabel z klauzulami where stosowanymi wobec wielu tabel.
Chociaż kolejność złączenia jest zmieniana podczas optymalizacji, optymalizator nie próbuje wszystkich możliwych zamówień złączenia. Zatrzymuje się, gdy znajdzie rozwiązanie, które uważa za wykonalne, ponieważ sam akt optymalizacji zużywa cenne zasoby.
Widzieliśmy, że zapytania, które działały jak psy (1 minuta + czas wykonania), sprowadzały się do wydajności poniżej sekundy po prostu przez zmianę kolejności wyrażeń sprzężenia. Należy jednak pamiętać, że są to zapytania z 12 do 20 łączeniami i klauzulami where w kilku tabelach.
Sztuczka polega na tym, aby ustawić zamówienie, aby pomóc optymalizatorowi zapytań dowiedzieć się, co ma sens. Możesz użyć Force Order, ale może to być zbyt sztywne. Postaraj się upewnić, że kolejność łączenia zaczyna się od tabel, w których najbardziej zredukuje dane poprzez klauzule where.