ag88.com

设为首页 | 加入收藏 | 联系我们
咨询热线:

产品展示

当前位置:主页 > 产品案例 >

ag88环亚国际娱乐使用 SQL 缓存依赖项数据库缓存依赖 (附实例

文章作者:admin 添加时间:2018-09-01 12:22 来源:未知 浏览次数:
ag88环亚国际娱乐使用 SQL 缓存依赖项数据库缓存依赖 (附实例
  • 产品名称:ag88环亚国际娱乐使用 SQL 缓存依赖项数据库缓存依赖 (附实例
  • 产品简介:最简单的缓存策略就是使缓存数据在一个指定的时间周期后过期。但是这个简单的方法意味着缓存数据没有保持与底层数据源的联系,从而导致过期数据长时保存或当前数据很快过期。更好的方法是使用 SqlCacheDependency 类,这样数据一直被缓存,直到其底层数据在

产品介绍:

  最简单的缓存策略就是使缓存数据在一个指定的时间周期后过期。但是这个简单的方法意味着缓存数据没有保持与底层数据源的联系,从而导致过期数据长时保存或当前数据很快过期。更好的方法是使用 SqlCacheDependency 类,这样数据一直被缓存,直到其底层数据在 SQL 数据库中被修改。本篇教程将讲解怎样使用这个类。

  使用 ObjectDataSource 缓存数据 和在架构中缓存数据 教程中探讨的缓存技术使用基于时间的有效期 , 在指定的周期过后从缓存中清除数据。该方法是平衡缓存性能与数据过时的最简单的方法。选择 x 秒的有效期,页面开发者虽然只能享受到 x 秒的缓存带来的好处,但可高枕无忧,因为数据的过期时间最多不会超过 x 秒。当然,对于静态数据,x可以延长为 web 应用程序的生命周期,如 应用程序启动时缓存数据 教程所述。

  缓存数据库数据时,人们常常会选用基于时间的有效期,因为其易于使用。但常常这不是个合适的方案。理想情况是:数据库数据一直被缓存,直到底层数据在数据库中被修改;此时才清除缓存。该方法能最大地获得缓存带来的性能上的好处,同时使过时数据保持的时间最短。然而,为享受到这些好处,必须建立一套系统,该系统可以感知到底层数据库数据发生了改变并从缓存中清除相应的条目。在2.0 以前,页面开发者负责实现该系统。

  ASP.NET 2.0 提供了SqlCacheDependency 类以及必要的基础架构 , 利用它们可以在数据库发生了变化时感知到变化 , 从而清除相应的缓存条目。有两种技术可用于感知底层数据发生的变化:通知和轮询。下面我们会讨论通知和轮询的不同之处,之后,我们将创建必要的基础架构来支持轮询,然后探讨怎样通过声明和编程两种方式来使用 SqlCacheDependency 类。

  有两种技术可用于感知数据库中的数据发生的变化:通知和轮询。使用通知时,对于某个具体查询,如果自其上次执行以来其查询结果已发生了改变,数据库会自动通知 ASP.NET 运行时。使用轮询时,数据库服务器保存特定表最近发生更改时的信息。 ASP.NET 运行时周期性地查询数据库,看哪些表的数据在缓存后发生过改动。其数据改动过的那些表的相关缓存条目会被清除。

  选用通知技术时,需要的建立工作比轮询少,并且具有更细的粒度,因为该技术在查询级而不是在表级跟踪变化。遗憾的是,只有在 Microsoft SQL Server 2005 的完整版,即非速成 (non-Express) 版中,才能使用通知。而对于 Microsoft SQL Server 从 7.0 到 2005 之间的所有版本 , 都可采用轮询技术。由于这些教程使用的是 SQL Server 2005 Express 版,我们将集中探讨建立和使用轮询。有关 SQL Server 2005 的通知功能的更多资料,请参考本教程末尾的更多阅读材料部分。

  在使用一个SqlCacheDependency 对象缓存数据时 ,ASP.NET 运行时会跟踪相应表的当前 changeId 。系统周期性地检查数据库,一旦发现某个 SqlCacheDependency 对象的 changeId 值不同于数据库中的相应值,就清除该对象,因为 changeId 值不同意味着数据被缓存后相应表又有了变化。

  另外如果在非web层要使用cache,可以使用:HttpRuntime.Cache,多个表关联可以使用:

  先说一下背景,做订餐系统的时候我们负责的是“厨师查看取餐情况”这个看着没什么、其实也没什么,亮点就是实时刷新、页面要和数据库中的数据保持一致;周期性访问数据库是一个方法但是我们不打算用这种方法,原因吧...

  这是我最近几年才领悟到的,刚开始写程序就从FoxBase开始的,从那时起,就把所有的精力都放在数据库研究上,自从接触SQLServer开始,什么表、视图、·100款产品40多个解决方案爱普生创新大会说消费升级要这样,触发器、存储过程等等太多好用的技术了,一般做管...

  1.数据依赖 数据依赖指的是通过一个关系中属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。 2.函数依赖 设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元...

  Web服务中有时会有需要频繁读取数据库的操作,若这个数据表中的内容不长变化, 为提高性能可对数据库进行缓存,只有数据库发生变化时才去读取数据库,否则直接从缓存中读取结果。 具体实现: 1.为数据...

  以前只听过SQL server数据缓存依赖,但一直没使用,由于项目需要,才研究了一番,发现了一个很诡异的问题,竟然是一个操作顺序问题导致的。   SQL server数据缓存依赖有两种实现模式,轮询...

  Sql缓存依赖主要分为两种: 1.轮询模式(poll model) 2.推模式(push model) 今天先讲解第一种模式:轮询 要使用sql轮询模式,得做三方面的工作: 1.对数据库启用...

  什么是缓存依赖 缓存       把你要访问的资源,放在内存中,占用一定的内存空间,从而使用户读取内存中的数据,进而减少读取数据库,或资源文件的次数,从而对你的程序并发量,以及返回请求速率...

  本教程适合于那些对缓存SQL查询以减少数据库连接与执行的负载、提高脚本性能感兴趣的PHP程序员。 概述 许多站点使用数据库作为站点数据存储的容器。数据库包含了产器信息、目录结构、ag88登录苹果运用无人机 意图在改进地图数据,文章或者留言本,有...

  1、应用程序维持的内存中存放一些常用的数控叫做缓存 2、ag88环亚国际娱乐,SQL缓存分类: 事务级别的缓存: 又叫做一级缓存,适用于经常被多线程修改或者删除的数据,一级缓存适用于在单线程环境中, hiber...

相关产品:

Copyright © 2013 ag88.com,ag88环亚国际娱乐,环亚娱乐平台,环亚娱乐官网 All Rights Reserved 网站地图