Qualche tempo fa, Brent Ozar ha pubblicato un post che descrive in dettaglio alcune delle differenze tra SQL Server e PostgreSQL:
Due differenze importanti tra SQL Server e PostgreSQL
Il primo punto ("I CTE sono recinzioni di ottimizzazione") ha attirato la mia attenzione, poiché è ovvio che nell'esempio fornito, SQL Server combina il CTE e la query principale insieme e lo ottimizza come una singola query (al contrario del comportamento opposto in PostgreSQL).
Tuttavia, questo comportamento sembra contrario agli esempi che ho visto in altri blog e corsi di formazione, in cui SQL Server considera il CTE come un recinto di ottimizzazione, che consente un migliore utilizzo degli indici, migliori prestazioni, ecc. Ad esempio:
Un modo migliore per selezionare la stella
Quindi, sembra che SQL Server "onori" il CTE come recinto di ottimizzazione SOMETIMES. Sono disponibili buone risorse che documentano l'elenco specifico di casi noti in cui SQL Server onorerà in modo affidabile il CTE come un recinto di ottimizzazione (o comportamento contrario)?