`
tudusi
  • 浏览: 1085441 次
文章分类
社区版块
存档分类
最新评论

启用数据库缓存

 
阅读更多

要利用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"%"&gt;%<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>&gt;</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缓存通知启用数据库 #### 一、SQL缓存通知简介 在.NET框架中,`SqlCacheDependency`是一种强大的机制,它允许应用程序基于SQL Server中的数据更改来自动更新其缓存项。这对于提高应用程序性能至关重要,...

    mysql数据库缓存只是讲解

    ### MySQL数据库缓存知识点详解 #### 背景与需求分析 随着互联网技术的迅猛发展,数据处理成为了各个企业必须面对的重要课题。数据库作为数据管理的核心工具,其选择与使用方式直接影响着系统的性能与成本。在市场...

    Yii数据库缓存实例分析

    上述配置将启用数据库缓存,`CDbCache`是Yii框架提供的数据库缓存类。根据项目需求,你可以选择不同类型的缓存类来满足不同的缓存策略。 然后,进行数据缓存: ```php Yii::app()-&gt;cache-&gt;set($key, $value, $out...

    清理数据库缓存工具

    在SQL Server 2008中,数据库缓存是存储查询计划、数据页和其他数据库对象的重要组成部分,以提高数据访问速度。然而,有时SQL Server可能会过度消耗内存,导致系统资源紧张,甚至出现系统死机的情况。这可能是由于...

    数据库缓存:释放性能瓶颈的金钥匙

    ### 数据库缓存:释放性能瓶颈的金钥匙 在当今高度数字化的世界中,数据库作为存储、检索和管理数据的核心工具,对于确保应用的稳定性和高效性至关重要。随着数据量的不断增长以及用户对响应时间要求的提高,如何...

    数据库缓存扩展

    数据库缓存扩展是一种提高应用程序性能的关键技术,尤其是在处理大量数据时。标题提到的"数据库缓存扩展",在这个上下文中,特指PHP环境中的Memcache扩展。Memcache是一款广泛使用的分布式内存对象缓存系统,它能够...

    asp.net 实现文件缓存依赖,数据库缓存依赖

    ASP.NET 是一个强大的 web 应用程序开发框架,它提供了多种缓存机制来优化应用程序性能,包括文件缓存和数据库缓存依赖。在 ASP.NET 中,缓存是提高应用程序响应速度的重要工具,尤其是在处理大量数据或者高并发访问...

    Asp_Net数据库缓存依赖 - ranlin - 博客园

    实现Asp_Net数据库缓存依赖 的配置。1.为数据库启用缓存依赖(您需要具有管理特权,或管理帐户和密码。) 2.检查数据库是否启用监听服务 3.配置WebConfig 4.页面加载时执行以下代码,从数据库中获取数据并加入缓存中 5....

    为SQL缓存依赖项启用该数据库

    标题"为SQL缓存依赖项启用该数据库"指出了一个操作,即开启数据库级别的缓存依赖功能。通常,SQL Server会默认启用这个特性,但有时候为了特定的优化策略或在特定环境中可能需要手动调整。启用这一功能意味着数据库...

    数据库与缓存深度学习完整版

    数据库管理员(DBA)通常负责管理数据库缓存,包括决定是否启用缓存、分配缓存内存大小、设置过期策略等。在实际应用中,开发人员也可能需要通过编程方式干预缓存控制。 10.6. 如何控制数据库缓存? 以MySQL为例,...

    面试题 数据库缓存篇.pdf

    数据库缓存是数据库管理系统中一项重要的性能优化技术,它可以显著提升数据库的查询效率。缓存通过存储查询结果来避免重复的数据库查询操作,减少了对磁盘的访问次数,从而降低响应时间和资源消耗。在面试中,数据库...

    SQL Server数据库的缓冲机制

    这些配置指定了数据库连接字符串,并启用了SQL缓存依赖功能。 - 页面级别配置: ```xml 数据库表" VaryByParam="none" %&gt; ``` 这段代码指定了页面缓存的时间以及依赖的数据库表。 #### 四、SQL缓存依赖的优点...

    开启SQLSERVER数据库缓存依赖优化网站性能

    很多时候,我们服务器的性能瓶颈会是在... 那么如何开启SQLSERVER数据库缓存依赖,方法如下: 第一步:修改Web.Config的节的配置,代码如下,让网站项目启用SqlCacheDependency。注意下面代码中的connectionStringNa

    WordPress数据库缓存插件DB Cache Reloaded

    数据库缓存,可以加快网站的访问速度,提高网站的加载速度,WP Super Cache插件、DB Cache插件都是不错的插件,尤其是DB Cache官方说此插件比WP-Cache插件、WP Super Cache插件更快,更节省空间,CUP占有率也更低。...

    Sql缓存依赖示例

    它的工作原理是基于数据库查询结果的缓存,当数据库中的数据发生变化时,能够及时通知应用程序更新缓存,避免了不必要的数据库查询。在.NET框架中,SQL Server提供了一种名为SQL Cache Dependency的机制来实现这一...

    数据结构试验报告

    - 启用数据库缓存机制,减少磁盘IO操作。 - 适当调整数据库配置参数,如内存分配等。 #### 不同数据量和存储引擎的影响 - **数据量**: - 通过对比10GB和20GB数据量下的查询执行时间,分析数据量增长对性能的...

    asp.net缓存sql数据库

    当数据在一段时间内不会发生变化或者变化频率极低时,利用缓存机制可以避免频繁地从SQL数据库中检索数据,从而降低数据库的压力,减少网络传输,提升用户体验。 ASP.NET缓存主要包括两种类型:内存缓存...

    iscsi本地缓存(支持多盘符)

    5. 开启缓存功能:在ISCSI客户端启用本地缓存,将虚拟磁盘映射到缓存中。 在实际应用中,ISCSI本地缓存能显著提升大规模虚拟化环境、数据库应用、视频流媒体等高I/O负载场景的性能。但需要注意,缓存策略的选择、...

    合理利用“二级缓存”技术 提高数据库整体性能

    在配置Infinite Cache时,用户可以通过设置postgresql.conf文件启用和配置缓存服务器。例如,通过`edb_enable_icache = on`开启二级缓存功能,`edb_icache_servers`定义了缓存服务器的地址和端口,`edb_icache_...

Global site tag (gtag.js) - Google Analytics