SqlDependency sẽ chỉ thông báo cho bạn rằng một thay đổi đã xảy ra và bạn sẽ phải đọc lại toàn bộ bảng. Nó hoạt động tốt với tỷ lệ thông báo thấp. Ở mức cao, bạn phải xem xét rằng các thông báo có một chi phí đáng kể. Xem Thông báo bí ẩn để biết thêm chi tiết về cách hoạt động của SqlDependency. Như bạn có thể thấy, có một chi phí đáng kể:
- thiết lập thông báo (viết trong sys.dm_qn_subscriptions và trong bảng hệ thống SSB)
- kích hoạt thông báo (viết sys.dm_qn_subscriptions)
- gửi thông báo (ghi vào bảng hệ thống SSB, hàng đợi đích)
- nhận thông báo (ghi vào hàng đợi đích, bảng hệ thống SSB)
Đó là khá nhiều lần viết, chi phí sẽ tăng lên nhanh chóng nếu bạn nhận được thông báo liên tục.
Nhưng câu hỏi thực sự là bạn muốn phản ứng chính xác như thế nào trong ứng dụng với tốc độ thay đổi liên tục? bạn muốn biết cái gì, cái đó cái gì đó đã thay đổi? tốt, bạn biết đấy, nó luôn luôn như vậy, bất cứ lúc nào ứng dụng cần dữ liệu, nó sẽ đọc trạng thái mới nhất tốt hơn, bởi vì nó chắc chắn đã thay đổi. Việc thăm dò ý kiến cũng không có ý nghĩa. Có vẻ như những gì bạn thực sự muốn là thay đổi theo dõi hoặc nhiều khả năng hơn, dựa trên tùy chỉnh hàng đợi thay đổi được cung cấp bởi những người khởi tạo thay đổi.