熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET應用中緩存Oracle數據[1]

2013-11-13 11:05:17  來源: .NET編程 

  為了創建可擴展高性能的基於WEB的應用ASPNET提供一個稱為數據緩存(Data Caching)的特性數據緩存支持將頻繁訪問的數據對象可編程地存放在內存中這一特性可擴展以廣泛地提高查詢Oracle數據庫中數據的ASPNET應用的性能本文講述一個策略可用於采用 Web Farm環境中的ASPNET Web應用緩存Oracle數據庫數據

  為了創建可擴展高性能的基於WEB的應用 ASPNET提供一個稱為數據緩存(Data Caching)的特性數據緩存支持將頻繁訪問的數據對象可編程地存放在內存中這一特性可擴展以廣泛地提高查詢Oracle數據庫中數據的ASPNET應用的性能本文講述一個策略可用於采用Web Farm環境中的ASPNET Web應用緩存 Oracle數據庫數據這個技巧允許在內存中緩存頻繁訪問的Oracle數據庫數據而不是頻繁訪問數據庫來取數據這可以幫助避免到Oracle數據庫服務器的不必要的遠路進一步的文章提出了一個保持緩存數據以使其始終與Oracle數據同步的實現

  ASPNET中的數據緩存

  ASPNET中的數據緩存由Cache類和SystemWebCaching命名空間中的CacheDependency類支持Cache類提供向緩存插入和從中取出數據的方法CacheDependency類允許為緩存中數據項的指定其依賴項當我們用Insert和Add方法將項目加入緩存中可以指定一個項目的過期(expiration)策略我們可以用Insert方法的absoluteExpiration屬性來定義緩存中一個項目的生命期這個屬性允許你指定相應數據項過期的准確時間也可以使用slidingExpiration屬性來指定項目過期的流逝時間(基於它被訪問的時間)一旦一個項目過期它從緩存中被清除除非它再次被加入緩存中否則再試圖訪問將返回一個空值

  設定緩存依賴

  ASPNET使我們可以基於一個外部文件目錄或另一個緩存項來定義一個緩存項的依賴即所謂文件依賴與鍵依賴若一個依賴項改變緩存項自動失效並被從緩存中清除當相應的數據源改變時我們可以用這種方法來從緩存中刪除項目例如若我們的應用從一個XML文件中取數據並顯示在一個表格 (grid)中我們可以把文件中的數據存放到緩存中並設定緩存依賴於那個XML文件當XML文件被更新數據項就從緩存中被清除出去這一事件發生時應用重新讀入XML文件最新的數據項副本被再一次插入緩存中進一步的回調事件處理器可被設定為一個監聽者當緩存項被刪除時得到通知這使得我們不需要反復輪詢緩存來確定數據項是否已無效

  Oracle數據庫上的ASPNET緩存依賴

  現在考慮這樣一個情景數據存放於Oracle數據庫中一個ASPNET應用通過ADONET來訪問進一步我們假設數據庫表中的數據一般是靜態的並被這個 Web應用頻繁訪問表上的DML操作很少而對數據有很多Select這種情況是數據緩存技術的理想應用但不幸的是ASPNET並不允許設定一個緩存項依賴於存放在數據庫表中的數據進一步現實世界中基於Web的系統Web服務器和Oracle數據庫服務器總是會運行在不同的機器上使得緩存無效操作更有挑戰性另外多數基於Web的應用采用Web farms同一個應用的實例在不同的Web服務器上跑以負載均衡這種情況使得數據庫緩存問題稍稍復雜一些

  為了進一步研究上述問題的解決方案我們舉一個Web應用的例子來說明如何實現例子中我們使用VBNET實現的ASPNET應用通過Oracle Data Provider for NET (ODP)來訪問 Oracle i數據庫

  這個例子使用Oracle數據庫中一個名為Employee的表我們為該表上insert update delete設定觸發器這些觸發器調用一個封裝了一個Java存儲過程的PL/SQL函數這個Java存儲過程負責更新緩存依賴的文件

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15138.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.