我想存儲一個整數變量,該變量得到遞增和遞減(一個計數信號用於限制併發請求到外部API)。這很容易,除非我需要一種方法來從並行SQL代理作業中運行的SSIS包中讀取/寫入該變量。現在可以有0到5個SQL Agent作業實例,因此可以同時運行SSIS包。我對SSIS跨進程通信有哪些選擇?
我的閱讀和寫作這個變量的選項是什麼?將使用此變量的代碼將作爲.NET中的自定義SSIS任務編寫。
這個值並不特別重要,只要它通常接近我在公差範圍內。確切會很好,但不是必需的。
我有權訪問文件系統,註冊表,數據庫,服務器和SSIS代理作爲一個整體,但我想經常檢查這個變量,通常15-30個線程,歷來會導致使用文件系統方法(我可能做錯了),並且IMO過於密集,無法存儲在數據庫中。如我錯了請糾正我。在註冊表中存儲可防止在服務器場中訪問變量。
如果有人可以幫忙,我會很樂意成爲你的契約僕人。
只是想知道,這個值不能住在數據庫表中的任何理由?所有5個實例應該能夠讀取它,如果適用,你必須使用適當的鎖定,或者我可能過度簡化了你的問題?當您需要獲取或更新值時,您可以通過SqlClient通過自定義任務中的代碼執行此操作。 – kd7 2011-03-03 16:33:25
最主要的原因就是與我正在做的數據庫交談的數量。我的上面的概述是有點簡化的,因爲這5個實例中的每一個都可以有多達20個線程在循環中訪問變量,等待該變量低於某個閾值。最糟糕的情況是每秒鐘大約有100個查詢,假設我睡了一整秒。現在他們睡了100毫秒,等待一個本地過程變量。希望這可以幫助。 – Jordan 2011-03-03 16:55:29