首先我是做web开发的,所以很多会偏向web的,组件使用的缓存是System.Web.HttpRuntime.Cache。
组件在默认情况下是关闭缓存的。
所以要开启缓存查询要做一下配置。
先看一下例子配置: configSections>section name="HxjCacheConfig" type="Hxj.Data.CacheConfiguration,Hxj.Data"/>configSections>HxjCacheConfig enable="true">entities>add key="NorthwindConnectionString.Products" value="60">add>entities>HxjCacheConfig>connectionStrings>add name="NorthwindConnectionString" connectionString="Data Source=ricci\hu;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient
HxjCacheConfig 节点的 enable 表示是否开启缓存,默认是关闭状态,除非显式开启 enable="true"。
entities 节点下的配置就是对实体查询的缓存配置。 add key="NorthwindConnectionString.Products" value="60">add>
表示connectionStrings中的节点name="NorthwindConnectionString"的连接下的Products表配置.
value="60" 表示缓存60秒。
所以一定要connectionStrings的name加上实体名,不然配置无效。
当然value也可以是缓存依赖的文件。 表示Products表的查询缓存依赖程序根目录下的1.txt文件。组件会判断该文件是否存在,不存在则该配置无效。
那测试一下缓存配置。 我们设置 enable="false",关闭缓存。
看一下组件执行的sql: Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @1a6b9589aa23444c9e6e13049220c19d)
Parameters: @1a6b9589aa23444c9e6e13049220c19d[Int32] = 1
Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @61ce100cf8074e76abc8d205b3ec0a2e)
Parameters: @61ce100cf8074e76abc8d205b3ec0a2e[Int32] = 1
Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @c99aa7541e1543aca08c28f65c7b1d4d)
Parameters: @c99aa7541e1543aca08c28f65c7b1d4d[Int32] = 1
Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @c8f9ce2df63f451aa09cbc4fa62acd9c)
Parameters: @c8f9ce2df63f451aa09cbc4fa62acd9c[Int32] = 1
Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @d786265aa9bd40bfbc253814d6c16b13)
Parameters: @d786265aa9bd40bfbc253814d6c16b13[Int32] = 1
执行了5次查询。
再设置 enable="true",开启缓存。
再查看一下执行的sql: 只执行了一次sql连接。
后面的四次都是直接从缓存中读取的。
再次执行,所有的查询都是直接从缓存中返回回来,没有连接数据库。
测试缓存文件依赖: 查看sql: Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @aa4964dae36c479792186ea95ce10b6e)
Parameters: @aa4964dae36c479792186ea95ce10b6e[Int32] = 3
Text: SELECTTOP 1 * FROM [Products] WHERE ([Products].[ProductID] = @e614d6bbc84c4603b159e30644665e07)
Parameters: @e614d6bbc84c4603b159e30644665e07[Int32] = 3
执行了两次,当修改文件后,缓存失效重新从数据库查询数据。
其实测试的有时候输出一条sql,可能是执行的太快,缓存失效来不及。
所以后来才加了System.Threading.Thread.Sleep(2000);
再次刷新,就只输出一条sql,只执行一次,也就是修改1.txt文件后才重新查询数据库。
查询判断是否有缓存配置是根据 FromProducts>()这里的Products来判断是否存在缓存配置的。
对于ToDataReader()查询,是不会缓存的。
当然用到ToDataReader的查询的其他方法也不会缓存,例如上一节中的Exists(WhereClip where)方法。
下一节将讲述自定义缓存。
发表评论
-
linux egrep命令参数及用法详解---在文件内查找指定的字符串
2012-07-06 09:52 1995功能说明:在文件内查找指定的字符串。egrep执行效果如g ... -
JavaScript对象及继承教程
2012-07-06 09:46 658一、 类与对象 在 JavaScript 世界里,关于面向 ... -
Flash builder 4.5支持Android平台之初体验
2012-07-02 12:53 660Flash builder 4.5可以 ... -
Chapter 4: About Event--Using events
2012-07-02 12:53 516在Flex中使用事件分 ... -
jsp页面
2012-07-02 12:53 548做人,生活,学习,玩.... ... -
遮罩的使用
2012-07-02 12:53 625有N个按钮又不想其导航栏出现烦人的滚动条。 解决方法 ... -
Chapter 22: Using Item Renderers and Item Editors--Creating item renderers and item editor components
2012-07-02 12:53 794Defining a custom item render ... -
通过Ethereal测量响应时间
2012-07-01 10:19 665我们在测试过程中有的时候响应时间可以通过客户端性能测试工具 ... -
AS3.0相关知识
2012-07-01 10:19 703as3.0 2010-01-06 0 ... -
使用AsyncToken和CallResponder的注意事项
2012-07-01 10:19 7811、 认识AsyncToken和CallResponder ... -
编写鱼眼组件
2012-07-01 10:19 655编写鱼眼组件 如果你看过苹果那的停靠栏也许你会很惊讶 ... -
使用Flare3D在FB中搭建第一个Molehill项目
2012-07-01 10:19 632本文介绍如何使用第三方开发框架Flare 3D 2.0在F ... -
[转]Flash平台开发者技能树
2012-06-30 16:47 673[转]Flash平台开发者技能树 2011年06月29日 ... -
《迎接RIA时代的到来》_75144
2012-06-30 16:47 565《迎接RIA时代的到来》_ ... -
2011年02月26日
2012-06-30 16:47 6402011年02月26日 2011年02月 ... -
as3 类库(转),留着以后慢慢看
2012-06-30 16:47 952as3 类库(转),留着以后慢慢看 2011年11月03日 ... -
Action Script 开源项目大全(二)
2012-06-30 16:47 1023Action Script 开源项目大全(二) 2010年0 ...
相关推荐
Hxj.Data(V1.7.4.2)一个关于数据库的组件。非常方便。
分页控件增加UrlPattern,以适应url重写,开启UrlPaging 后生效。 例如:UrlPattern=”abc_$pageindex$.aspx” $pagesize$ 每页数 $pageindex$ 当前页 $pagecount$ 总页数 $recordcount$ 总记录数
薪酬管理3(hxj).pptx
为什么选择Dos.ORM(原Hxj.Data)? 上手简单,0学习成本。使用方便,按照sql书写习惯编写C#.NET代码。功能强大。 高性能,接近手写Sql。 体积小(不到150kb,仅一个dll)。 完美支持Sql Server(2000至最新版),MySql...
Dos.ORM(原Hxj.Data)于2009年发布、2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大、最活跃、最完善的国产ORM。初期开发过程参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,...
关于音频功率放大器HXJ8002的电路说明。
音频功放,需要的下载可以学习,这个在宇音天下的资料里面有推荐使用,可能PDF不太好找,上传了送给有需要的人
从HXJ-1500便携式化雪机设计方案着手,论述了其结构特点、工作原理及主要技术参数;并通过生产实例予以印证其设计的合理性和可行性。
#读取Excel表作为参数输入hxj xls_path=arcpy.GetParameterAsText(0) data=xlrd.open_workbook(xls_path) #读取要批量添加字段的图层gisthink_idea shp_path=arcpy.GetParameterAsText(1) #shp_path=r'C:\Users\ygb_...
重新打造你的XP/2003的安装光盘(精简100M以上哦) 二十七.(图解)把最新KB826939补丁合集集成到Windows XP SP1安装光盘 二十八.《各类光盘一览》 二十九.虚拟软盘 by lyh728 三十.刻录各种启动光盘的经验小结 三十一....
Amoi夏新制作的AB类与D类功放原理研究。 入门级文章。
multiPIE 人脸数据库(1515张,含表情,光照等),用于神经网络训练。图像清晰,大小为240*280。并且进行了人脸对齐操作!
huangxjgit.github.io hxj的博客
目前流行的功率放大器除采用集成电路功放外几乎都是用分立元件构成的OCL电路。基本电路由 差动输入级、电压放大级、电流放大级(推动级)、功率输出级和保护电路组成。
下载后解压得到node-v16.20.2.tar.gz
2.7WAB类功放MC4863,兼容ML4863、NL4863,HXJ4863。
wiki-js.tar.gz(2.5.302)离线安装包
虹膜加密 适用于IRIS Hub和Cosmos HubJavaScript库。 它主要提供和帐户生成,交易构建和离线签名功能。您可以通过以下方式...// account: {"address":"faa1e4y8urzgjd82447ydlw9tszsm2lxfwdr5hxj4a","phrase":"carbo
透过 SketchUp Pro,您能够以动态组件的方式将属性新增至模型。随时建立摘要说明模型属性数据的报告。使用这些报告可掌握模型的演进过程中数量和仿真次数等信息。 汇出和分享 某些项目需要使用传统的 CAD 应用程序...