2017-02-12 116 views
2

我要監視兩個表的變化(大型數據庫)我有兩個選擇服務經紀人與正常監控性能

  • 的SqlDependency和服務器代理
  • 普通計時器每一秒都看

從我的角度來看,第二選擇是不合理和頭痛的,我對定時器有不好的經驗

任何關於最佳實踐的建議e爲此

+0

如果這些表的所有更改都由您自己的應用程序完成 - 您可以從應用程序本身通知這些更改。 – Evk

+0

@Evk沒有不是由我的應用程序我只是聽取使用Windows服務的變化進行更改 – AMH

回答

0

Query Notifications(aka。 SqlDependency)允許您檢測將修改您已經運行的查詢的更改。它們僅用於緩存失效。

要跟蹤表格中發生的更改,即使您的客戶端處於脫機狀態,也需要考慮Change TrackingChange Data Capture

定時器在任何情況下都不是一個選項。他們無法檢測到更改,他們只能再次運行相同的查詢。

+0

可以解釋更多的緩存失效,我有很多應用程序插入兩個表我有Windows服務採取行動取決於任何新的插入SqlDependency將有助於這個權利? – AMH

+0

[Cache Invalidation](https://en.wikipedia.org/wiki/Cache_invalidation) –

+0

SqlDependency幫助的場景是,比方說,您有一個在網格上顯示數據的應用程序。數據是通過查詢從數據庫中獲取的。只要其他用戶修改了DB中的記錄,網格就會刷新以顯示新的修改過的數據。 –