Há algum tempo, Brent Ozar publicou uma postagem detalhando algumas das diferenças entre o SQL Server e o PostgreSQL:
Duas diferenças importantes entre o SQL Server e o PostgreSQL
O primeiro ponto (“CTEs são cercas de otimização”) chamou minha atenção, porque é óbvio que, no exemplo fornecido, o SQL Server combina o CTE e a consulta principal e o otimiza como uma consulta única (em oposição ao comportamento oposto em PostgreSQL).
No entanto, esse comportamento parece contrário aos exemplos que eu já vi em outros blogs e classes de treinamento, onde o SQL Server trata o CTE como uma cerca de otimização, o que permite um melhor uso de índices, melhor desempenho etc. Por exemplo:
Uma maneira melhor de selecionar estrelas
Portanto, parece que o SQL Server "honra" o CTE como uma cerca de otimização às vezes. Existem bons recursos disponíveis que documentam a lista específica de casos conhecidos em que o SQL Server honrará o CTE de maneira confiável como uma cerca de otimização (ou o comportamento oposto)?
fonte