Một thời gian trước, Brent Ozar đã xuất bản một bài viết chi tiết một số khác biệt giữa SQL Server và PostgreQuery:
Hai điểm khác biệt quan trọng giữa SQL Server và PostgreSQL
Điểm đầu tiên (các CTE của Tối cao là hàng rào tối ưu hóa) bắt gặp tôi, vì rõ ràng trong ví dụ được cung cấp, SQL Server kết hợp CTE và truy vấn chính với nhau và tối ưu hóa nó như một truy vấn duy nhất (trái ngược với hành vi ngược lại trong PostgreSQL).
Tuy nhiên, hành vi này dường như trái ngược với các ví dụ mà tôi đã thấy trong các blog và lớp đào tạo khác, nơi SQL Server coi CTE là hàng rào tối ưu hóa, cho phép sử dụng chỉ mục tốt hơn, hiệu suất tốt hơn, v.v. Ví dụ:
Vì vậy, có vẻ như SQL Server trực tiếp tôn vinh CTE như một hàng rào tối ưu hóa SOMETIMES. Có tài nguyên tốt nào có sẵn để ghi lại danh sách cụ thể các trường hợp đã biết trong đó SQL Server sẽ tôn vinh CTE một cách đáng tin cậy như một hàng rào tối ưu hóa (hoặc hành vi ngược lại) không?