IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫MSSQL → SQL Server 2005實現(xiàn)數(shù)據(jù)庫緩存依賴

SQL Server 2005實現(xiàn)數(shù)據(jù)庫緩存依賴

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

使用方法和步驟如下:

step1

檢測是否已經(jīng)啟用ServiceBroker,檢測方法:

SelectDATABASEpRoPERTYEX('數(shù)據(jù)庫名稱','IsBrokerEnabled')

--1表示已經(jīng)啟用0表示沒有啟用

step2

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

ALTERDATABASE數(shù)據(jù)庫名稱SETENABLE_BROKER;

step3

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

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

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

step4

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

方法A:建立連接對象,再創(chuàng)建一個SqlCommand實例,創(chuàng)建SqlCacheDependency實例,在這步之后再調用Command對象來獲取數(shù)據(jù)(這個順序很重要)。之后調用Cache的Insert語句建立一個依賴于一個具體查詢數(shù)據(jù)集的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:建立連接對象,再創(chuàng)建一個SqlCommand實例,最后創(chuàng)建SqlDependency實例。定義SqlDependency的委托OnChange,當數(shù)據(jù)發(fā)生改變時做出相應的處理(比如清除Cache)。

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

SqlCacheDependencydependency=newSqlCacheDependency(command);

dependency.OnChange+=newOnChangeEventHandler(Dependency_OnChange);

注意事項:

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

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

關鍵詞標簽:SQL Server 2005,數(shù)據(jù)

相關閱讀

文章評論
發(fā)表評論

熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系

相關下載

    人氣排行 配置和注冊ODBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠程導入(導出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法