程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0數據教程之五十八:用ObjectDataSource緩存數據

ASP.NET 2.0數據教程之五十八:用ObjectDataSource緩存數據

編輯:關於ASP.NET

返回“ASP.NET 2.0數據教程目錄”

導言

就計算機科學而言,caching就是將所需要的數據或信息的備份放 在某個地方,便於快速訪問的這樣一個過程。以數據處理(data-driven)程序為 例,程序的大部分時間浪費在數據查詢上。要提升這種程序的性能,通常的做法 是將查詢結果存放在程序的存儲器裡。

ASP.NET 2.0提供了各種各樣的緩 存方式。對web頁面和用戶控件可以通過output caching進行緩存;同樣我們可以 通過ObjectDataSource 和SqlDataSource控件,在控件級(control level)對數 據進行緩存;同時,ASP.NET的data cache提供了豐富的緩存接口(caching API ),供頁面開發員通過編程緩存對象。在本文及接下來的3篇文章我們將對 ObjectDataSource的緩存屬性以及data cache進行考察;我們也將探究如何在啟 動時對application-wide數據進行緩存,以及通過使用SQL cache dependencies 對緩存數據刷新。本系列並沒有探討output caching,相關細節請參考文章 Output Caching in ASP.NET 2.0

http://aspnet.4guysfromrolla.com/articles/121306- 1.aspx

主要的緩存要點

由於緩存通過將數據的副本放置在一個便 於快速訪問的地方來提高程序的總體性能。由於它僅僅是一個副本,當源數據發 生改變時,副本不能同步更新。為此,頁面開發員應制定一個標准將其清除出內 存,可以使用如下的2種方法之一:

Time-based標准:向內存添加的條目 (item),只能在內存裡駐留固定或靈活(sliding)的一段時間。比如,開發者可設 定一個時間段,比如60秒,當條目添加到內存後,不管訪問它的頻率有多高,60 秒後就會被清除掉;如果是靈活(sliding)處理的話,當最後一次被訪問後,未再 次被訪問的時間一旦超出60秒,也會被清除掉。

Dependency-based標准: 當向內存添加條目時為其分配一個從屬體(dependency),當條目對應的從屬體發 生改變時將條目清除掉。從屬體可以是一個文件;另一個緩存條目;或者干脆是 這兩者的混合體( combination);當然還可以是SQL cache dependencies,它可 以向內存添加條目,當源數據改變時將條目清除掉。我們將在接下來的文章 《Using SQL Cache Dependencies》裡詳細考察。

不管是哪種標准,在條 目被清除掉以前,我們都可以對其訪問。如果內存達到了它的極限,它會清除掉 已有的條目後再添加新的條目。因此,當處理緩存數據時很重要的一點是我們要 充分考慮到緩存數據已被清除的可能。在下一篇文章《Caching Data in the Architecture》我們考察采用哪種模式從內存訪問數據。

緩存是提升程序 性能的一種較為經濟的方法,就像Steven Smith在他的文章《ASP.NET Caching: Techniques and Best Practices:》裡闡述的一樣:“緩存是獲得‘ 上佳’性能的一種好方法,不需要太多的時間和分析。… 存儲器也 便宜,要獲得你期望的性能,靠緩存技術你需要花30秒;靠優化代碼和數據庫你 可能要幾天乃至幾周時間…”

雖然緩存可以顯而易見的提升 系統性能,但並不是適用於所有的應用程序,比如某些實時(real-time)、頻繁更 新數據的程序就不適合。

但是對大部分程序而言,還是適用的。關於 ASP.NET 2.0裡的緩存的更多背景資料請參考ASP.NET 2.0 QuickStart Tutorials 系列的Caching for Performance 部分。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved