我有數據轉換和緩存服務作爲自託管的WCF服務運行。 現在它使用數據庫輪詢在恆定的短時間間隔更新其數據。如何使用SQL查詢或表更改高效地觸發系統命令?
我認爲這是不必要的。只有其中一個表發生更改時以及數據更改的時間取決於系統用戶的操作時才能更改數據。
設置特定表的觸發器沒有問題,但是我需要SQL-Server之外的操作來更新緩存。我的WCF服務可以在通過HTTP接收特定URI時執行更新。所以我需要的是表觸發器中的一個命令,它將發送一個請求。它甚至有可能嗎?
我想到了一個在HTTP請求中使用的黑客。我暫停服務器上的HTTP請求響應,直到來自其他地方的數據包到達。投票請求之間沒有延遲。我實現了完全異步的「實時」更新。
也許這種方法可能適用於SQL?我想到一個查詢會阻止終止,直到收到一個信號。那麼,它最終會超時,但它足以嘗試。那麼 - 如何在SQL中發信號並等待?通過鎖定和解鎖共享資源,如光標或虛擬表?
還有其他的選擇嗎?我需要以儘可能低的頻率完成高速緩存更新(因爲它非常昂貴,所以每分鐘一次很好),但是當數據發生變化時我需要立即更新。
我認爲,sql server [服務代理](https://technet.microsoft.com/en-us/library/ms345108%28v=sql.90%29.aspx)可能只是您的祈禱的答案。 –
另外,請看[SqlDependency](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency(v = vs.110).aspx)類和[如何使用它。 ](https://msdn.microsoft.com/en-us/library/a52dhwx7(v = VS.80)的.aspx) –