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

SQL Server:Các hàm có giá trị bảng so với các thủ tục được lưu trữ

Hàm có giá trị trong bảng nội tuyến (TVF) giống như một macro:nó được mở rộng thành truy vấn bên ngoài. Nó không có kế hoạch như vậy:SQL đang gọi có một kế hoạch.

Một TVF nhiều tuyên bố có một kế hoạch (sẽ tìm thấy một tài liệu tham khảo).

TVF rất hữu ích khi bạn muốn thay đổi danh sách CHỌN cho đầu vào được tham số hóa. TVF nội tuyến được mở rộng và lựa chọn / vị trí bên ngoài sẽ được người tối ưu hóa xem xét. Đối với TVFs nhiều câu lệnh, tối ưu hóa là không thực sự khả thi vì nó phải chạy đến khi hoàn thành, sau đó bộ lọc.

Về mặt cá nhân, tôi muốn sử dụng một proc được lưu trữ trên TVF nhiều câu lệnh. Chúng linh hoạt hơn (ví dụ như gợi ý, có thể thay đổi trạng thái, BẬT SỐ KHOẢN, ĐẶT XACTABORT, v.v.).

Tôi không phản đối TVF nội tuyến nhưng không có xu hướng sử dụng chúng cho mã giao diện khách hàng vì không thể sử dụng SET và thay đổi trạng 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. 10 câu hỏi thường gặp hàng đầu về giám sát hiệu suất máy chủ SQL

  2. truy vấn sql để trả về sự khác biệt giữa hai bảng

  3. Thay đổi kiểu do người dùng xác định trong SQL Server

  4. cách hiệu quả để triển khai phân trang

  5. Các loại con trỏ máy chủ SQL - Con trỏ KEYSET | Hướng dẫn sử dụng SQL Server / TSQL