国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

解析SQL Server 2005實現數據庫緩存依賴

2024-08-31 00:46:31
字體:
來源:轉載
供稿:網友

使用方法和步驟如下:

step1

檢測是否已經啟用ServiceBroker,檢測方法:

SelectDATABASEpRoPERTYEX('數據庫名稱','IsBrokerEnabled')

--1表示已經啟用0表示沒有啟用

step2

如果ServiceBroker沒有啟用,使用下面語句啟用:

ALTERDATABASE數據庫名稱SETENABLE_BROKER;

step3

在實現基于服務的SQL數據緩存依賴過程中,需要顯式調用SqlDependency.Start來啟動接受依賴項更改通知的偵聽器。

SqlDependency.Start(connectionString);//推薦將這段代碼加到Global.asax的Application_Start方法中

SqlDependency.Stop(connectionString);//用于關閉,可加在Global.asax的Application_End方法中

step4

該步驟分別有兩種不同的做法。該階段必須注意步驟。

方法A:建立連接對象,再創建一個SqlCommand實例,創建SqlCacheDependency實例,在這步之后再調用Command對象來獲取數據(這個順序很重要)。之后調用Cache的Insert語句建立一個依賴于一個具體查詢數據集的Cache項。

SqlConnectionconn=newSqlConnection(strConnection);SqlCommandcommand=newSqlCommand(strCommandText,conn);

SqlCacheDependencydependency=newSqlCacheDependency(command);

//注冊方法到委托,該委托是

CacheItemRemovedCallbackonRemove=newCacheItemRemovedCallback(RemovedCallback);

//新增或修改一條緩存記錄

Cache.Insert(strCacheKey,objAppCache,dependency,absoluteExpiration,slidingExpiration,CacheItemPriority.Default,onRemove);

方法B:建立連接對象,再創建一個SqlCommand實例,最后創建SqlDependency實例。定義SqlDependency的委托OnChange,當數據發生改變時做出相應的處理(比如清除Cache)。

SqlConnectionconn=newSqlConnection(strConnection);SqlCommandcommand=newSqlCommand(strCommandText,conn);

SqlCacheDependencydependency=newSqlCacheDependency(command);

dependency.OnChange =newOnChangeEventHandler(Dependency_OnChange);

注意事項:

不知道是不是還存在BUG,我在項目開發中遇到一些奇怪的現象。同樣的代碼,在有的機器上運行則能捕捉到變化,有的則完全沒反應;也有時會出現Cache剛建立就反復發生依賴改變的事件。偶爾Cache還會數據發生變化卻不引發事件。

但從最終項目實施的情況看,似乎都只是某些機器環境造成的不確定因素?這個無法確定。不過起碼數據庫端是否正常啟用,可以通過SQLServerProfiler來查看監視。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洞头县| 虹口区| 中西区| 菏泽市| 卓资县| 达州市| 六安市| 唐海县| 平度市| 新郑市| 屏边| 南丹县| 留坝县| 榆社县| 林甸县| 龙南县| 奎屯市| 察雅县| 孟村| 诸暨市| 鄂托克前旗| 牙克石市| 宁南县| 连南| 深圳市| 冀州市| 涟源市| 霍林郭勒市| 鹿泉市| 玛沁县| 连州市| 富阳市| 惠水县| 延寿县| 黄龙县| 汨罗市| 稻城县| 防城港市| 开封市| 汉阴县| 新泰市|