2014-10-17 74 views
2

我看了這個偉大的萊姆斯Rusanu的文章 http://rusanu.com/2009/08/05/asynchronous-procedure-execution/SQL經紀人:異步程序執行

如何實現這個想法:

我有一個大的主表,用戶可以標記「爲刪除」記載有(將字段設置爲1) 我無法使用SQL作業,因爲客戶可以使用SQLExpress。

這個想法是:當大表中的用戶'刪除'或'取消刪除'記錄需要發送消息到隊列。 激活proc'fire and forget'proc爲主表中的標記記錄執行真正的Delete語句 - 全部或部分,取決於它。

但需要最大限度地避免阻塞....這就是爲什麼這樣的問題:

如何真正執行刪除時,SQL Server有一個最低的負載?或者當數據庫的活動最低? 如何檢測異步過程中的'低數據庫加載'時刻?

回答

1

無法將Service Broker激活直接同步到工作負載,並且只能在「低活動」期間激活。

我不能使用SQL工作,因爲客戶可以使用的SQLExpress

雖然是真實的SQL Server Express Edition的SQL缺乏調度代理,也有使用Service Broker的conversation timers變通。見Scheduling Jobs in SQL Server Express(和part 2)。