要利用asp.net2.0中的新SQL Server高速缓存依赖性,必须SQL Server数据库支持该功能.可使用C:\Windows\Microsoft .NET\Framework\V2.0XXXXX\下的aspnet_regsql.exe工具或者使用SqlCacheDependencyAdmin类编写代码实现
<wbr></wbr>
1.使用aspnet_regsql.exe工具
1).使数据库支持
aspnet_regsql.exe<wbr></wbr>-S<wbr>服务器地址 -U
数据库用户名<wbr></wbr></wbr>-P<wbr>数据库密码<wbr></wbr></wbr>-d<wbr>数据库名称<wbr></wbr></wbr>-dd
2).使表支持SQL高速缓存依赖性
aspnet_regsql.exe<wbr></wbr>-S<wbr>服务器地址
-U 数据库用户名</wbr><wbr></wbr>-P<wbr>数据库密码<wbr></wbr></wbr>-d<wbr>数据库名称<wbr></wbr></wbr>-t<wbr>表名<wbr></wbr></wbr>-et
另外
--使数据库不支持SQL高速缓存依赖性
aspnet_regsql.exe<wbr></wbr>-S<wbr>服务器地址 -U 数据库用户名</wbr><wbr></wbr>-P<wbr>数据库密码<wbr></wbr></wbr>-d<wbr>数据库名称<wbr></wbr></wbr>-ed
--使表不支持SQL高速缓存依赖性
aspnet_regsql.exe<wbr></wbr>-S<wbr>服务器地址 -U 数据库用户名</wbr><wbr></wbr>-P<wbr>数据库密码<wbr></wbr></wbr>-d<wbr>数据库名称<wbr></wbr></wbr>-t<wbr>表名<wbr></wbr></wbr>-dt
--查询当前数据库支持SQL高速缓存依赖性的表
aspnet_regsql.exe<wbr></wbr>-S<wbr>服务器地址 -U 数据库用户名</wbr><wbr></wbr>-P<wbr>数据库密码<wbr></wbr></wbr>-d<wbr>数据库名称<wbr></wbr></wbr>-lt
<wbr></wbr>
2.使用SqlCacheDependencyAdmin类编写代码实现
<wbr></wbr>
string<wbr>connStr<wbr></wbr></wbr>=<wbr>ConfigurationManager.ConnectionStrings[</wbr>"ConnectionString"].ConnectionString;
SqlCacheDependencyAdmin.EnableNotifications(connStr);//使数据库支持SQL高速缓存依赖性
SqlCacheDependencyAdmin.DisableNotifications(connStr);//使数据库禁用SQL高速缓存依赖性
SqlCacheDependencyAdmin.EnableTableForNotificati<wbr>ons(connStr,<wbr>tableName);</wbr></wbr>//使表支持SQL高速缓存依赖性,tableName为表名
SqlCacheDependencyAdmin.DisableTableForNotificat<wbr>ions(connStr,<wbr>tableName);</wbr></wbr>//使表禁止SQL高速缓存依赖性
3.在<configuration>节点下配置数据库链接字符串
<connectionStrings><add<wbr>name</wbr>="ConnectionString"<wbr>connectionString</wbr>="server=服务器;uid=用户名;pwd=密码;database=数据库名称"/></connectionStrings>
4.在<system.web>节点下配置
<caching>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><sqlCacheDependency<wbr>enabled</wbr>="true"<wbr>pollTime</wbr>="10000"><!--enabled指示是否轮询更改,pollTime缓存时间,以秒为单位-->
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><databases>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><add<wbr>name</wbr>="cacheName"<wbr>connectionStringName</wbr>="ConnectionString"/><!--connectionStringName指定在<connectionStrings>中添加的连接字符串。name则是为该SqlCacheDependency起的名字,这个名字将在第6步中用到。-->
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></databases>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></sqlCacheDependency>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></caching>
5.客户端代码
<<a href="mailto:%@Page%C2%A0<wbr>Language=" c#"<wbr style="text-decoration:none; color:rgb(8,68,135)"><wbr>CodeFile="Default3.aspx.cs"<wbr>Inherits="Default3"%">%<span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">@Page<wbr>Language</wbr></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">C#</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><wbr>AutoEventWireup</wbr></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">true</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><wbr>CodeFile</wbr></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">Default3.aspx.cs</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><wbr>Inherits</wbr></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">Default3</span><span style="word-wrap:normal; word-break:normal; color:rgb(128,0,0)">"</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)">%</span>></wbr></wbr></wbr>
<!DOCTYPE<wbr>html<wbr>PUBLIC</wbr></wbr>"//W3C//DTD<wbr>XHTML<wbr>1.0<wbr>Transitional//EN</wbr></wbr></wbr>"<wbr></wbr>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html<wbr>xmlns</wbr>="http://www.w3.org/1999/xhtml"<wbr></wbr>>
<head<wbr>runat</wbr>="server">
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr><title>无标题页</title>
</head>
<body>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr><form<wbr>id</wbr>="form1"<wbr>runat</wbr>="server">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><asp:Label<wbr>ID</wbr>="Label1"<wbr>runat</wbr>="server"<wbr>Text</wbr>="Label"></asp:Label>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><asp:GridView<wbr>ID</wbr>="GridView1"<wbr>runat</wbr>="server">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></asp:GridView>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></form>
</body>
</html>
6.服务端代码
using<wbr>System;<br></wbr>using<wbr>System.Data;<br></wbr>using<wbr>System.Data.SqlClient;<br></wbr>using<wbr>System.Configuration;<br></wbr>using<wbr>System.Collections;<br></wbr>using<wbr>System.Web;<br></wbr>using<wbr>System.Web.Security;<br></wbr>using<wbr>System.Web.UI;<br></wbr>using<wbr>System.Web.UI.WebControls;<br></wbr>using<wbr>System.Web.UI.WebControls.WebParts;<br></wbr>using<wbr>System.Web.UI.HtmlControls;<br><br></wbr>using<wbr>System.Web.Caching;</wbr>
public<wbr></wbr>partial<wbr></wbr>class<wbr>Default3<wbr>:<wbr>System.Web.UI.Page<br>
{<br><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>protected<wbr></wbr>void<wbr>Page_Load(</wbr>object<wbr>sender,<wbr>EventArgs<wbr>e)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>DataSet<wbr>dt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>dt<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr>(DataSet)Cache[</wbr>"firmOrders"];
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>if<wbr>(dt<wbr></wbr></wbr>==<wbr></wbr>null)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>string<wbr>connStr<wbr></wbr></wbr>=<wbr>ConfigurationManager.ConnectionStrings[</wbr>"ConnectionString"].ConnectionString;
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>string<wbr>sql<wbr></wbr></wbr>=<wbr></wbr>"select<wbr>*<wbr>from<wbr>Orders</wbr></wbr></wbr>";
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>SqlConnection<wbr>conn<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>SqlConnection(connStr);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>SqlDataAdapter<wbr>da<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>SqlDataAdapter(sql,<wbr>conn);<br><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>dt<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>DataSet();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>da.Fill(dt);<br><span style="font-family:simsun; font-size:14px; line-height:21px; background-color:rgb(186,186,186); word-wrap:normal; word-break:normal">//不加下面两句会报错</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
SqlCacheDependencyAdmin.EnableNotifications(connStr);//使数据库支持SQL高速缓存依赖性
SqlCacheDependencyAdmin.EnableTableForNotificati<wbr>ons(connStr,<wbr>tableName);</wbr></wbr>//使表支持
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>SqlCacheDependency<wbr>myDependency<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>SqlCacheDependency(</wbr>"cacheName",<wbr></wbr>"Orders");
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Cache.Insert(</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>"firmOrders",<wbr>dt,<wbr>myDependency);<br><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Label1.Text<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>"从数据库读取";
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>else
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Label1.Text<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>"从内存读取";
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>GridView1.DataSource<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr>dt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>GridView1.DataBind();<br><wbr><wbr><wbr><wbr>}<br>
}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
### 为SQL缓存通知启用数据库 #### 一、SQL缓存通知简介 在.NET框架中,`SqlCacheDependency`是一种强大的机制,它允许应用程序基于SQL Server中的数据更改来自动更新其缓存项。这对于提高应用程序性能至关重要,...
### MySQL数据库缓存知识点详解 #### 背景与需求分析 随着互联网技术的迅猛发展,数据处理成为了各个企业必须面对的重要课题。数据库作为数据管理的核心工具,其选择与使用方式直接影响着系统的性能与成本。在市场...
上述配置将启用数据库缓存,`CDbCache`是Yii框架提供的数据库缓存类。根据项目需求,你可以选择不同类型的缓存类来满足不同的缓存策略。 然后,进行数据缓存: ```php Yii::app()->cache->set($key, $value, $out...
在SQL Server 2008中,数据库缓存是存储查询计划、数据页和其他数据库对象的重要组成部分,以提高数据访问速度。然而,有时SQL Server可能会过度消耗内存,导致系统资源紧张,甚至出现系统死机的情况。这可能是由于...
### 数据库缓存:释放性能瓶颈的金钥匙 在当今高度数字化的世界中,数据库作为存储、检索和管理数据的核心工具,对于确保应用的稳定性和高效性至关重要。随着数据量的不断增长以及用户对响应时间要求的提高,如何...
数据库缓存扩展是一种提高应用程序性能的关键技术,尤其是在处理大量数据时。标题提到的"数据库缓存扩展",在这个上下文中,特指PHP环境中的Memcache扩展。Memcache是一款广泛使用的分布式内存对象缓存系统,它能够...
ASP.NET 是一个强大的 web 应用程序开发框架,它提供了多种缓存机制来优化应用程序性能,包括文件缓存和数据库缓存依赖。在 ASP.NET 中,缓存是提高应用程序响应速度的重要工具,尤其是在处理大量数据或者高并发访问...
实现Asp_Net数据库缓存依赖 的配置。1.为数据库启用缓存依赖(您需要具有管理特权,或管理帐户和密码。) 2.检查数据库是否启用监听服务 3.配置WebConfig 4.页面加载时执行以下代码,从数据库中获取数据并加入缓存中 5....
标题"为SQL缓存依赖项启用该数据库"指出了一个操作,即开启数据库级别的缓存依赖功能。通常,SQL Server会默认启用这个特性,但有时候为了特定的优化策略或在特定环境中可能需要手动调整。启用这一功能意味着数据库...
数据库管理员(DBA)通常负责管理数据库缓存,包括决定是否启用缓存、分配缓存内存大小、设置过期策略等。在实际应用中,开发人员也可能需要通过编程方式干预缓存控制。 10.6. 如何控制数据库缓存? 以MySQL为例,...
数据库缓存是数据库管理系统中一项重要的性能优化技术,它可以显著提升数据库的查询效率。缓存通过存储查询结果来避免重复的数据库查询操作,减少了对磁盘的访问次数,从而降低响应时间和资源消耗。在面试中,数据库...
这些配置指定了数据库连接字符串,并启用了SQL缓存依赖功能。 - 页面级别配置: ```xml 数据库表" VaryByParam="none" %> ``` 这段代码指定了页面缓存的时间以及依赖的数据库表。 #### 四、SQL缓存依赖的优点...
很多时候,我们服务器的性能瓶颈会是在... 那么如何开启SQLSERVER数据库缓存依赖,方法如下: 第一步:修改Web.Config的节的配置,代码如下,让网站项目启用SqlCacheDependency。注意下面代码中的connectionStringNa
数据库缓存,可以加快网站的访问速度,提高网站的加载速度,WP Super Cache插件、DB Cache插件都是不错的插件,尤其是DB Cache官方说此插件比WP-Cache插件、WP Super Cache插件更快,更节省空间,CUP占有率也更低。...
它的工作原理是基于数据库查询结果的缓存,当数据库中的数据发生变化时,能够及时通知应用程序更新缓存,避免了不必要的数据库查询。在.NET框架中,SQL Server提供了一种名为SQL Cache Dependency的机制来实现这一...
- 启用数据库缓存机制,减少磁盘IO操作。 - 适当调整数据库配置参数,如内存分配等。 #### 不同数据量和存储引擎的影响 - **数据量**: - 通过对比10GB和20GB数据量下的查询执行时间,分析数据量增长对性能的...
当数据在一段时间内不会发生变化或者变化频率极低时,利用缓存机制可以避免频繁地从SQL数据库中检索数据,从而降低数据库的压力,减少网络传输,提升用户体验。 ASP.NET缓存主要包括两种类型:内存缓存...
5. 开启缓存功能:在ISCSI客户端启用本地缓存,将虚拟磁盘映射到缓存中。 在实际应用中,ISCSI本地缓存能显著提升大规模虚拟化环境、数据库应用、视频流媒体等高I/O负载场景的性能。但需要注意,缓存策略的选择、...
在配置Infinite Cache时,用户可以通过设置postgresql.conf文件启用和配置缓存服务器。例如,通过`edb_enable_icache = on`开启二级缓存功能,`edb_icache_servers`定义了缓存服务器的地址和端口,`edb_icache_...