SqlServer數(shù)據(jù)緩存依賴的功能#一類特選_第1頁
SqlServer數(shù)據(jù)緩存依賴的功能#一類特選_第2頁
免費預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、首先,介紹和比較SQL SERVER 7.0/2000和SQL SERVER 20051.1 SQL SERVER 7.0/2000SQL SERVER 7.0/2000沒有內(nèi)置支持數(shù)據(jù)緩存依賴性的功能,因此,您只能添加特定的數(shù)據(jù)庫表、觸發(fā)器等,在后臺連續(xù)輪詢數(shù)據(jù)庫以查看數(shù)據(jù)更改。在數(shù)據(jù)表中執(zhí)行INSERT、UPDATE和DELETE操作時,將自動發(fā)送變更通告,因此僅監(jiān)視表級別(無法跟蹤的行)。使用方法步驟:使用1.1.1 aspnet_regsql命令行或SqlCacheDependencyAdmin配置連接數(shù)據(jù)庫。1 . 1 . 1 . 1 alter database set enabl

2、e _ broker;Aspnet_regsql -S -U sa -P sa -d -ed啟動數(shù)據(jù)庫的數(shù)據(jù)緩存相關(guān)性功能Aspnet_regsql -S -U啟動sa -P sa -d -t -et數(shù)據(jù)表的數(shù)據(jù)緩存相關(guān)性功能1.1.1.2sqlcacheedpendencyadmin . enable notifications(connection string);/啟動數(shù)據(jù)庫的數(shù)據(jù)緩存相關(guān)性功能sqlcacheedpendencyadmin . enabletablefornotifications(connection string,table);/啟用數(shù)據(jù)表緩存此代碼寫入Global

3、.asax的Application_Start方法,以便在應(yīng)用程序啟動時啟用數(shù)據(jù)庫和數(shù)據(jù)表的高速緩存相關(guān)性。1.1.2配置Web.config如果在下一個節(jié)點下配置了一個數(shù)據(jù)庫,則無需指定下一級別節(jié)點1.1.3用于應(yīng)用程序數(shù)據(jù)緩存(控制數(shù)據(jù)源,緩存整個頁面的輸出,此處不討論,如下所示)sqlcacheedpendency SCD=new sqlcachependency(“數(shù)據(jù)庫名稱”,“表名稱”);Cache .Insert(.scd、);1.2 SQL SERVER 2005內(nèi)置SQL數(shù)據(jù)緩存依賴項支持,內(nèi)置通知轉(zhuǎn)發(fā)服務(wù)可幫助您監(jiān)控數(shù)據(jù)更改,進一步細化使用和配置活動。使用方法步驟:檢測是否

4、已啟用1.2.1服務(wù)代理Select DATABASEpRoPERTYEX(數(shù)據(jù)庫名稱,IsBrokerEnabled) - 1表示啟用0時未啟用在這個地方,我認為有些朋友翻譯成“激活與否”是不對的。在此,我將英語原文寫為“this can be checked by calling select database propertyex(db name,Isbrokerenabled)”。a 1 means that the broker is enabled。a 0 means that the broker is not enabled。根據(jù)我的經(jīng)驗,如果直接在當(dāng)前SqlServer200

5、5中創(chuàng)建新數(shù)據(jù)庫,則默認情況下打開;如果從其他地方導(dǎo)入,則默認情況下導(dǎo)入后關(guān)閉??赡懿粶蚀_。親自試試。如果已啟用,則可以直接轉(zhuǎn)至1.2.2。1.2.1.1啟用服務(wù)代理ALTER DATABASE數(shù)據(jù)庫名稱SET ENABLE _ BROKER1.2.2啟動監(jiān)聽器,以在實行以服務(wù)為基礎(chǔ)的SQL資料快取相依性時接收相依性變更通知。必須顯式調(diào)用Start。SQL dependency . start(connection string);建議您將此代碼添加到/Global.asax的Application_Start方法中。SQL dependency . stop(connection strin

6、g);用于/close,可以添加到Global.asax的Application_End方法中。1.2.3用于應(yīng)用程序數(shù)據(jù)緩存sqlcommandcmd=new SQL command(SQL,conn);sqlcacheedpendency SCD=new sqlcacheedpendency(cmd);Cache .Insert(.scd、);注意:a)必須設(shè)置完全限定名稱的數(shù)據(jù)表。也就是說,表格名稱之前需要擁有者,例如dbo.test。b)。必須明確設(shè)置要訪問的數(shù)據(jù)庫列名,不能使用“*”。c)必須確保不是聚合函數(shù)。COUNT、MAX等。1.3比較,差異SQL SERVER 7.0/200

7、0SQL SERVER 2005實現(xiàn)機制輪詢通知轉(zhuǎn)發(fā)服務(wù)(服務(wù)代理)是否需要配置激活需要不需要,內(nèi)置支持檢測數(shù)據(jù)更改僅限于表格層級變更監(jiān)視表格層次,監(jiān)督資料列層次變更顯然,SQL SERVER 2005的緩存機制更有效。此外,SqlCacheDependency類還可以優(yōu)化:特別是與SQL SERVER 2005結(jié)合使用時a)。使用SQL SERVER 2005時,SqlCacheDependency類支持與system . data . SQL client . SQL dependency類集成。應(yīng)用程序可以創(chuàng)建SqlDependency對象,通過OnChanged事件處理程序接受通知進行

8、注冊。這樣,應(yīng)用程序可以使用Sql server 2005的查詢通知機制,使用Sql查詢結(jié)果監(jiān)視無效數(shù)據(jù)更改,從緩存中刪除緩存對象,以及輕松獲取數(shù)據(jù)更改通知以刷新緩存。如此處所示,在觸發(fā)onRemoveCallback委派后,數(shù)據(jù)將從緩存中刪除,可以手動將緩存添加到委派中,也可以簡單地將其設(shè)置為null,以便在下次調(diào)用時重新緩存。),以獲取詳細信息b)。除了向應(yīng)用程序添加緩存相關(guān)性外,還可以與OutputCache指令一起使用,以生成依賴于SqlServer數(shù)據(jù)庫表的輸出緩存的頁面或用戶控件。對于用戶控件,OutputCache指令不支持使用SQL SERVER 2005的查詢通知(即委派on

9、RemoveCallback)。第二,System。Web.Caching.Cache Insert和Add之間的差異2.1 Add方法Object add(字符串密鑰、對象值、高速緩存獨立指數(shù)、datetime absolute expiration、timespan sliding exping)2.2 Insert方法Void insert(字符串密鑰,對象值);Void insert(字符串密鑰、對象值、高速緩存獨立指數(shù));Void insert(字符串密鑰、對象值、高速緩存獨立指數(shù)、datetime absolute expiration、timespan sliding expir

10、ation)Void insert(字符串密鑰、對象值、高速緩存獨立指數(shù)、datetime absolute expiration、timespan sliding expiration)Void insert(字符串密鑰、對象值、高速緩存獨立指數(shù)、datetime absolute expiration、timespan sliding expiration)2.3比較,差異a)。Insert方法支持5個重載,使用靈活,Add方法必須提供7個參數(shù)。b)。Add方法返回緩存項的數(shù)據(jù)對象,Insert為Void返回。c)如果添加重復(fù)的緩存,Insert將替換項目,Add方法將報告錯誤。三、Cac

11、heDependency、AggregateCacheDependency、SqlCacheDependency3.1 CacheDependency是AggregateCacheDependency和SqlCacheDependency的超類。主要用于設(shè)置應(yīng)用程序數(shù)據(jù)緩存對象與文件、緩存鍵、文件或緩存鍵的數(shù)組,或其他緩存dependency對象之間的依存關(guān)系。CacheDependency監(jiān)視依存關(guān)系,而不是在對象更改時自動刪除緩存的對象。CacheDependency監(jiān)視文件或目錄的一組文件路徑更改。3.2AggregateCacheDependency主要用于實現(xiàn)聚合緩存依賴性。如果數(shù)據(jù)

12、同時具有對兩個表的高速緩存依賴性,則其中一個表數(shù)據(jù)更改高速緩存將失效。3.3 SqlCacheDependency通過在應(yīng)用程序數(shù)據(jù)緩存對象、頁面輸出緩存、數(shù)據(jù)源控件等指定SQL Server數(shù)據(jù)庫表或Sql Server 2005查詢結(jié)果之間設(shè)置緩存相關(guān)性,在表發(fā)生更改(Sql Server 2005行級別更改)時自動從緩存中刪除與該表關(guān)聯(lián)的緩存對象,然后重新添加這些對象。一般而言:SqlCacheDependency (SqlCommand)用于SQL SERVER 2005SqlCacheDependency(數(shù)據(jù)庫名稱、表名稱)用于SQL SERVER 7.0/2000在Vs2005中

13、啟用數(shù)據(jù)庫緩存相關(guān)性aspnet _ reg SQL . exe-s localhost-u sa-p sa-d HN FMS-edaspnet _ regs QL . exe-s localhost-u sa-p sa-d HN FMS-t applyss-et啟用數(shù)據(jù)庫端高速緩存相關(guān)性alter database HN FMS set enable _ broker;是否在數(shù)據(jù)庫端查詢中啟用高速緩存相關(guān)性Select databasepropertyex (HN FMS,isbrokerenabled)-1表示未啟用0在Web.config中配置在Gload.asxm中配置void application _ start(object sender,eventargs e)/應(yīng)用程序啟動時執(zhí)行的代碼system . data . SQL client . SQL dependency . start(system . configuration . configuration manager . connection strings hnfmsconnection . startconnection string);void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論