联系方式CONTACT 

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

尊龙d88

使用 SQL 缓存依赖项数据库缓存依赖 (附实例

来源:http://www.vidsr.com 责任编辑:尊龙d88 更新日期:2018-11-18 15:59

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

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

  缓存数据库数据时,人们常常会选用基于时间的有效期,因为其易于使用。但常常这不是个合适的方案。尊龙人生就是博旧版全国首个新闻,理想情况是:数据库数据一直被缓存,直到底层数据在数据库中被修改;此时才清除缓存。该方法能最大地获得缓存带来的性能上的好处,同时使过时数据保持的时间最短。然而,为享受到这些好处,必须建立一套系统,该系统可以感知到底层数据库数据发生了改变并从缓存中清除相应的条目。在 ASP.NET 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,多个表关联可以使用:

  数据库连接池是什么?大家可能有的人不知道或者就算知道对于连接池大家也是不很明白?连接池可以干什么,他的作用又是什么? 大家肯定知道jdbc的吧,如果大家不知道jdbc我建议不要看这篇博客。还是看看j...来自:liliping28的博客

  SQLServer 查询通知功能建立在数据库引擎用来维护索引视图的更改检测机制上。在使用SQLServer进行Select缓存依赖通知的时候。发现有时候缓存没有起到作用。仔细查看了一下MSDN的文...来自:沛沛老爹的专栏

  最近自己在写一个demo,想尝试一下缓存依赖,所以写下此文章,便于自己以后翻阅。首先我们先定义缓存的通用接口和实现该接口的类; /// /// 定义cache的通用接口 ...来自:且行且珍惜

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

  李赛赛的专栏.NET 大数据量并发解决方案 - mike031024的博客

  asp.net 实现文件缓存依赖,数据库缓存依赖 VS2005+SQL2005 演示实例--SQL Server数据库缓存依赖 Sql server 2005、Sql server 2008中测试通过

  测试中,释放缓存的一些方法  尤其查询语句性能测试时,数据是否被缓存,这是测试中一个重要点。下面几个命令帮助我们清除缓存。方便测试。  清除缓存有关的命令:  SQL 2000里面除了dbcc ...

  默认情况下是没有开启缓存的,除了局部的 session 缓存,可以增强变现而且处理循环依赖也是必须的。要开启二级缓存,你需要在你的 SQL 映射文件中添加一行:这个简单语句的效果如下: ...

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

  aspnet_regsql.exe -S 数据库服务器名 -U sa -P 123 -d dong -ed

  们的服务器性能损耗还是在查询数据库的时候,所以对数据库的缓存还是显得特别重要,上面几种方式都可以实现部分数据缓存功能。但问题是我们的数据有时候是在变化的,这样用户可能在缓存期间查询的数据就是老的数据,...

  缓存命名空间的讲解流程 16.1  System.Web.Caching简介 本节从缓存命名空间的总体简介和组成结构入手,从整体上对System.Web.Caching进行概述。 1...

  本篇文章主要介绍了SQL Server性能调优中缓存的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧 在执行任何查询时,SQL Server都会将数据读取到内存,...

  由于项目需要兼容多数据库,导入多个驱动,maven导入SQL server依赖时报错,经网上查询,得以下解决办法。过程总结:首先,maven里自带的没有SQL server的jdbc驱动,所以要从网上...

  13. 查看数据库对象间的依赖关系 在SQL Server中,(可编程)对象间的引用即依赖关系,有多种方式可以检查,随着版本变更,方式也有所不同。 父子关系的对象,不通过依赖关系来...

  EAS为了提高系统的运行效率,提供了连接缓存。那什么是连接缓存,它有什么用好处,ag88环亚,如何创建配置连接缓存以及如何在组件中使用连接缓存呢?下面将一一为你解答。我们在开发两层应用的的时候,总是使用sqlca这...

  Redis是一个不错的缓存数据库,读取数据速度效率都很不错。今天大家共同研究下redis的用法。结合网上的资料和自己的摸索,先来看下安装与配置把。 咱们主要看在WINDOWS上怎样使用RED...

  写项目的时候经常需要缓存,tp5框架自带了一个数据库缓存, 数据更新时自动删除缓存,不过在用的时候发现有时候数据更新了但缓存并没有删除,便查看了下t p5数据库缓存的实现方式。缓存假设,现在要查询一个...

  支持连接池和结果集缓存的MySQL数据库JDBC通用框架的轻量级封装(一)——粗略实现 (1)数据库连接池构建方法 1、利用Apache的Commons Pool通过继承BasePooledO...

  在数据库中,用户可能多次执行相同的查询语句。为了提高查询效率,数据库会在内存在划分一个专门的区域,用来存放用户最近执行的查询,这块区域就是缓存。因为内存的运行速度要比硬盘快的多。为此通过缓存机制,就可...

  介绍 在实际项目中,MySQL数据库服务器有时会位于另外一台主机,需要通过网络来访问数据库;即使应用程序与MySQL数据库在同一个主机中,访问MySQL也涉及到磁盘IO操作(MySQL也有一些数据...

  Cache类,是一个用于缓存常用信息的类。HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例。 一、属性 属性 说明 C...

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

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

  引入缓存可以提高性能,但是数据会存在两份,一份在数据库中,一份在缓存中,如果更新其中任何一份会引起数据的不一致,数据的完整性被破坏了,因此,同步数据库和缓存的这两份数据就非常重要。本文介绍常见的缓存更...

  更多的时候,我们的服务器性能损耗还是在查询数据库的时候,所以对数据库的缓存还是显得特别重要,外经贸金融考研专业课和英语如何上面几种方式都可以实现部分数据缓存功能。但问题是我们的数据有时候是在变化的,这样用户可能在缓存期间查询的数据...

  学习博客园李天平的内容,在VS2008+MS2000上的实例。 共两个web project 1-5是WebPageCache 数据库缓存依赖 是 系统缓存全解析-实例:DBCache 系统缓存全解析1:系统缓存的概述 系统...

  #show variables like have_query_cache;是否开启了缓存 #select @@global.query_cache_size; 缓存空间大小,如是0则缓存不可用...