L'ordine di join nel server SQL2008R2 influisce indiscutibilmente sulle prestazioni delle query, in particolare nelle query in cui è presente un numero elevato di join di tabelle con clausole where applicate a più tabelle.
Sebbene l'ordine di unione sia stato modificato nell'ottimizzazione, l'ottimizzatore non prova tutti i possibili ordini di unione. Si ferma quando trova quella che considera una soluzione praticabile poiché l'atto stesso di ottimizzazione utilizza risorse preziose.
Abbiamo visto che le query con prestazioni simili a quelle dei cani (1 minuto + tempo di esecuzione) si riducono a prestazioni inferiori al secondo semplicemente modificando l'ordine delle espressioni di join. Tieni presente, tuttavia, che si tratta di query con da 12 a 20 join e clausole where su diverse tabelle.
Il trucco consiste nell'impostare l'ordine per aiutare l'ottimizzatore di query a capire cosa ha senso. Puoi usare Force Order ma può essere troppo rigido. Cerca di assicurarti che il tuo ordine di unione inizi con le tabelle in cui ridurranno maggiormente i dati attraverso le clausole where.