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

Sự khác biệt giữa hàm nội tuyến và chế độ xem

Sau khi đọc nhiều câu trả lời ở đây, tôi muốn lưu ý rằng có sự khác biệt lớn giữa hàm có giá trị bảng nội tuyến và bất kỳ loại hàm nào khác (TVF vô hướng hoặc đa dòng).

TVF nội tuyến chỉ đơn giản là một dạng xem được tham số hóa. Nó có thể được mở rộng và tối ưu hóa giống như một chế độ xem. Không bắt buộc phải hiện thực hóa bất kỳ thứ gì trước khi "trả về kết quả" hoặc bất kỳ thứ gì tương tự (mặc dù, rất tiếc, cú pháp có RETURN .

Một lợi ích lớn mà tôi đã tìm thấy của TVF nội tuyến trên một chế độ xem là nó bắt buộc phải tham số hóa trong khi với một chế độ xem, bạn phải giả định rằng người gọi sẽ tham gia hoặc hạn chế việc sử dụng chế độ xem một cách thích hợp.

Ví dụ, chúng tôi có nhiều bảng dữ kiện lớn trong DW với mô hình ngôi sao Kimball điển hình. Tôi có một cái nhìn về một mô hình tập trung vào bảng dữ kiện, được gọi là không có bất kỳ giới hạn nào, sẽ trả về hàng trăm triệu hàng. Bằng cách sử dụng TVF nội tuyến với tham số thích hợp, người dùng không thể vô tình yêu cầu tất cả các hàng. Phần lớn không thể phân biệt được hiệu suất giữa hai loạ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. Làm cách nào để tạo một bảng dựa trên một bảng khác

  2. Làm cách nào để bạn vượt qua loại lỗi này:Không cho phép cập nhật đặc biệt đối với danh mục hệ thống.?

  3. Làm thế nào để áp dụng 3 giá trị cho 1 hàng cho 3 hàng với mỗi giá trị?

  4. Cách tìm một mục danh sách tại một vị trí được chỉ định trong SQL Server

  5. Một lần nữa:Quy trình được lưu trữ so với TV-UDF