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

Tại sao CTE lại tốt hơn con trỏ / bảng dẫn xuất / truy vấn con / bảng tạm thời, v.v.?

CTE (không đệ quy) không sử dụng con trỏ. Đó là một cách tiếp cận dựa trên tập hợp. Đó là sự khác biệt lớn so với việc sử dụng con trỏ. Nhưng điều đó đúng khi không sử dụng con trỏ nói chung.

Nên tránh con trỏ ở những nơi hoàn toàn có thể (vì tôi chắc rằng tất cả chúng ta đều biết).

Một CTE không nhất thiết phải tốt hơn việc sử dụng một bảng dẫn xuất, nhưng dẫn đến mã TSQL dễ hiểu hơn. CTE thực sự chỉ là viết tắt cho một truy vấn hoặc truy vấn con; một cái gì đó giống như một cái nhìn tạm thời.

Tình huống mà CTE có thể không phải là cách tiếp cận tốt nhất, là khi trình tối ưu hóa kế hoạch truy vấn nhận được các ước tính hàng không chính xác cho CTE.

Câu hỏi liên quan:Ưu điểm / nhược điểm của việc sử dụng CTE là gì?




  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 Server:xoay động trên 5 cột

  2. Visual Studio:ContextSwitchDeadlock

  3. CHÈN VÀO @TABLE EXEC @query với SQL Server 2000

  4. Cải thiện điều chỉnh hiệu suất SQL Server với 3 mẹo sau

  5. Thiết lập và cấu hình SQL Server Replication