国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能

開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能

2019-09-03 11:54ASP.NET之家 ASP.NET教程

開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能

很多時候,我們服務(wù)器的性能瓶頸會是在查詢數(shù)據(jù)庫的時候,所以對數(shù)據(jù)庫的緩存非常重要,那么有沒有一種方法,可以實現(xiàn)SQL SERVER數(shù)據(jù)庫的緩存,當(dāng)數(shù)據(jù)表沒有更新時,就從緩存中讀取,當(dāng)有更新的時候,才從數(shù)據(jù)表中讀取呢,答案是肯定的,這樣的話我們對一些常用的基礎(chǔ)數(shù)據(jù)表就可以緩存起來,比如做新聞系統(tǒng)的新聞類別等,每次就不需要從數(shù)據(jù)庫中讀取了,加快網(wǎng)站的訪問速度。 
那么如何開啟SQLSERVER數(shù)據(jù)庫緩存依賴,方法如下: 
第一步:修改Web.Config的<system.web>節(jié)的配置,代碼如下,讓網(wǎng)站項目啟用SqlCacheDependency。注意下面代碼中的connectionStringName,就是指定的<connectionStrings>節(jié)中的數(shù)據(jù)庫連接字符串變量名稱。name則是為該SqlCacheDependency起的名字,這個名字將在第三步中用到。SqlCacheDependency類會自動完成對此配置節(jié)信息的讀取以建立和數(shù)據(jù)庫之間的聯(lián)系。 

復(fù)制代碼代碼如下:


<system.web> 
<httpHandlers> 
<add verb="*" path="*.aspx" 
type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
<add verb="*" path="*.shtml" 
type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
<add verb="*" path="*.bobo" 
type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
</httpHandlers> 
<!-->以下設(shè)置數(shù)據(jù)庫緩存依賴方式--> 
<caching> 
<sqlCacheDependency enabled="true" pollTime="6000"> 
<databases> 
<add name="YD_JWC_JAKE" connectionStringName="cachestr"/> 
</databases> 
</sqlCacheDependency> 
</caching> 
<!-- 
設(shè)置 compilation debug="true" 將調(diào)試符號插入 
已編譯的頁面中。但由于這會 
影響性能,因此只在開發(fā)過程中將此值 
設(shè)置為 true。 
--> 
<compilation debug="true"> 
<assemblies> 
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
</assemblies> 
</compilation> 
<!-- 
通過 <authentication> 節(jié)可以配置 ASP.NET 使用的 
安全身份驗證模式, 
以標(biāo)識傳入的用戶。 
--> 
<authentication mode="Forms"> 
<forms loginUrl="login.aspx" name=".AJSUPCXAIUTH"></forms> 
</authentication> 
<authorization> 
<allow users="*"/> 
</authorization> 
<!-- 
如果在執(zhí)行請求的過程中出現(xiàn)未處理的錯誤, 
則通過 <customErrors> 節(jié)可以配置相應(yīng)的處理步驟。具體說來, 
開發(fā)人員通過該節(jié)可以配置 
要顯示的 html 錯誤頁 
以代替錯誤堆棧跟蹤。--> 
<customErrors mode="RemoteOnly" defaultRedirect="/ER3.shtml"> 
<error statusCode="403" redirect="/ER1.shtml" /> 
<error statusCode="404" redirect="/ER404.shtml" /> 
</customErrors> 
</system.web> 


第二步:在CMD中執(zhí)行下述命令,以開啟SQL SERVER數(shù)據(jù)庫對SqlCacheDependency的支持,利用aspnet_regsql.exe工具,該工具位于windows\microsoft.net\framework\[版本]文件夾中 
代碼如下: 

復(fù)制代碼代碼如下:


aspnet_regsql -C "data source=127.0.0.1;initial catalog=YD_JWC_JAKE;user id=sa;password=" -ed -et -t "T_NewsClass" 


參數(shù)-C后面跟著的是數(shù)據(jù)庫連接字符串,注意字母C是大寫。參數(shù)-t后面跟著的就是你要開啟數(shù)據(jù)庫緩存的數(shù)據(jù)表,此處我為新聞類別的表開啟了緩存依賴。(如果有多個表,則重復(fù)執(zhí)行此命令,注意修改你的數(shù)據(jù)表名) 
第三步:在獲取數(shù)據(jù)的業(yè)務(wù)層代碼中,如果是第一次讀取,則從數(shù)據(jù)庫中讀取后,存入緩存里。以后獲取數(shù)據(jù)時,數(shù)據(jù)庫會自動判斷表是否有更新數(shù)據(jù),如果有,則讀數(shù)據(jù)庫同時更新緩存,如果沒有更新,則從數(shù)據(jù)庫中讀取。代碼如下: 

復(fù)制代碼代碼如下:


private void getInfoClass( int t) 

string CacheKey = "cacheclass" + t.ToString(); 
object objModle = Jake.DataCache.GetCache(CacheKey);//從緩存中獲取 
DataTable dt=null; 
if (objModle == null)//如果緩存中沒有則讀取數(shù)據(jù)庫 

Jake.BLL.NewsManage.NewsClass nc = new Jake.BLL.NewsManage.NewsClass(); 
dt = nc.GetList("").Tables[0]; 
objModle = dt; 
if (objModle != null) 

System.Web.Caching.SqlCacheDependency dep = new System.Web.Caching.SqlCacheDependency("YD_JWC_JAKE", "T_NewsClass"); 
Jake.DataCache.SetCache(CacheKey, objModle, dep); 


else 

dt = (DataTable)objModle; //緩存中有就直接讀取緩存,不需要訪問數(shù)據(jù)庫 

DataRow[] drs = dt.Select("","classid"); 
StringBuilder sb =new StringBuilder(); 
sb.Append("<ul>"); 
foreach (DataRow r in drs) 

string cid=r["ClassId"].ToString(); 
Security js = new Security(); 
string decrystr = Jake.Common.ConfigHelper.GetConfigString("DecryStr");//獲得加密密鑰 
cid = js.EncryptQueryString(cid, decrystr); 
string cdesc=r["ClassDesc"].ToString(); 
if (t == 1) 

sb.Append("<li><a href="/Info" + cid + ".shtml" href="Info" + cid + ".shtml"><span class='fontbold'>" + cdesc + "</span></a></li>"); 

else if (t == 2) 

sb.Append("<li><a href="/File" + cid +".shtml" href="File" + cid +".shtml"><span class='fontbold'>" + cdesc + "</span></a></li>"); 

else 
sb.Append("<li><a href="/FAQ" + cid + ".shtml" href="FAQ" + cid + ".shtml"><span class='fontbold'>" + cdesc + "</span></a></li>"); 

sb.Append("</ul>"); 
Response.Write(sb); 


以上代碼中Jake.DataCache.GetCache()方法是自己定義的一個獲取和設(shè)置緩存的通用方法,單獨編譯成了DLL: 
代碼如下: 

復(fù)制代碼代碼如下:


using System; 
using System.Collections.Generic; 
using System.Web; 
using System.Text; 
namespace Jake 

public class DataCache 

/// <summary> 
/// 獲取當(dāng)前應(yīng)用程序指定CacheKey的Cache值 
/// </summary> 
/// <param name="CacheKey"></param> 
/// <returns></returns> 
public static object GetCache(string CacheKey) 

System.Web.Caching.Cache objCache = HttpRuntime.Cache; 
return objCache[CacheKey]; 

/// <summary> 
/// 設(shè)置當(dāng)前應(yīng)用程序指定CacheKey的Cache值 
/// </summary> 
/// <param name="CacheKey"></param> 
/// <param name="objObject"></param> 
public static void SetCache(string CacheKey, object objObject) 

System.Web.Caching.Cache objCache = HttpRuntime.Cache; 
objCache.Insert(CacheKey, objObject); 

/// <summary> 
/// 設(shè)置已緩存依賴的方式緩存數(shù)據(jù) 
/// </summary> 
/// <param name="CacheKey">鍵值</param> 
/// <param name="objObject">緩存對象</param> 
/// <param name="dep">緩存依賴項</param> 
public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency dep) 

System.Web.Caching.Cache objCache = HttpRuntime.Cache; 
objCache.Insert( 
CacheKey, 
objObject, 
dep, 
System.Web.Caching.Cache.NoAbsoluteExpiration,//從不過期 
System.Web.Caching.Cache.NoSlidingExpiration,//禁用可調(diào)過期 
System.Web.Caching.CacheItemPriority.Default, 
null 
); 



至此,對于數(shù)據(jù)表的緩存依賴就已經(jīng)開啟,這樣可以大大加快網(wǎng)站訪問的速度。 
(轉(zhuǎn)載請注明本文出處:http://blog.csdn.net/j_jake)

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 99国产精品99久久久久久 | 天天爽夜夜爽夜夜爽精品视频 | 久久精品国产久精国产 | 一区二区中文 | 在线亚洲一区 | 成人亚洲视频 | 国产精品久久精品 | 国产精品69毛片高清亚洲 | 91视频免费看 | 欧美日韩在线免费 | 黄网站色大毛片 | 日本久草| 欧美女人性 | 91亚洲国产成人久久精品网站 | 欧美日韩一区二区三区在线观看 | 国产精品久久久久久 | 精品国产乱码久久久久久影片 | 天堂中文资源在线 | 亚洲成人激情在线 | 午夜精品久久久久久久白皮肤 | 国产免费拔擦拔擦8x高清在线人 | 自拍偷拍专区 | 亚洲乱码国产乱码精品精98午夜 | 日韩中文字幕在线播放 | 中文字幕一区二区三区四区 | 91福利视频导航 | 一级黄色国产片 | 欧美九九九 | 国产在线拍揄自揄拍视频 | 一级欧美| 国产精品久久久久久久久 | 日韩视频一区二区三区 | 亚洲国产精品成人 | 桃乃木香奈在线 | 99福利影院| 亚洲色图 偷拍自拍 | 黄色av免费在线播放 | 日日嗨av一区二区三区四区 | 日韩www| 欧美日韩国产综合视频 | 一级视频免费观看 |