Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL 2005 CTE so với bảng TEMP Hiệu suất khi được sử dụng trong kết hợp của các bảng khác

CTE chỉ là một bí danh cho truy vấn.

Nó có thể (hoặc không) được chạy lại mỗi khi nó được sử dụng.

Không có cách nào rõ ràng để buộc CTE hiện thực hóa trong SQL Server (như /*+ MATERIALIZE */ của Oracle ), và bạn phải làm những trò bẩn thỉu như thế này:

CTE có thể cải thiện hiệu suất nếu được sử dụng trong các kế hoạch chỉ yêu cầu một lần đánh giá (như HASH JOIN , MERGE JOIN v.v.).

Trong các trường hợp này, bảng băm sẽ được tạo ngay từ CTE , trong khi sử dụng bảng tạm thời sẽ yêu cầu đánh giá CTE , kéo kết quả vào bảng tạm thời và đọc lại bảng tạm thời.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Tạo XML - Cách đặt Unicode UTF-8

  2. Cách sử dụng proc được lưu trữ bên trong cấu hình log4net cho SQL Server để ghi nhật ký

  3. Cách cập nhật các hàng với một ngày ngẫu nhiên

  4. Công dụng của dấu ngoặc vuông [] trong câu lệnh sql là gì?

  5. Tính số bản ghi cho mỗi ngày giữa 2 ngày