快速业务通道

ASP.NET 2.0数据教程之五十八:用ObjectDataSource缓存数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

返回“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 部分。

第一步:创建Caching页面

在我们开始以前,首先让我们花些时间来添加包括本篇在内的最近四篇教 程需要用到的页面。我们先在项目中新建一个称作Caching的文件夹,接下来,为 目录新增以下几个页面,并配置为使用Site.master母板页。

Default.aspx

ObjectDataSource.aspx

FromTheArchitectu re.aspx

AtApplicationStartup.aspx

SqlCacheDependencies.aspx

ASP.NET 2.0数据教程之五十八:用ObjectDataSource缓存数据

图1:创建相关的ASP.NET页面

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号