中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

ASP.NET緩存初探 使用得當(dāng)是關(guān)鍵

  緩存是在內(nèi)存存儲數(shù)據(jù)的一項技術(shù),也是ASP.NET中提供的重要特性之一,對于程序員來講,了解ASP.NET緩存的工作原理對于其設(shè)計程序是非常有用的。

  ASP.NET需要被緩存的對象多種多樣,包括從數(shù)據(jù)庫中提取出來的數(shù)據(jù),以及ASPx頁面生成的靜態(tài)頁,甚至是編譯好的程序集。合理利用緩存能讓ASP.NET的性能大幅提升,下面將對ASP.NET中的緩存機制進行簡單概述。

緩存的分類

  在ASP.NET中,大部分緩存機制是保存在cache對象中,也就是服務(wù)器內(nèi)存的一部分。當(dāng)用戶請求數(shù)據(jù)時,如果數(shù)據(jù)已經(jīng)被緩存,則用戶所提取的數(shù)據(jù)直接從服務(wù)端返回,而不是從數(shù)據(jù)庫等底層數(shù)據(jù)庫提取。這對性能的提升不得不說很有幫助。下面來看ASP.NET中幾種緩存機制。

程序集緩存

  簡單的說,這種緩存是ASP.NET自帶的,無需開發(fā)人員進行參與的緩存方式。即當(dāng)?shù)谝淮握埱?a href=/yuedu/fuwuqi/ target=_blank class=infotextkey>服務(wù)器時,Page類以及相關(guān)程序集被編譯,當(dāng)下次請求時,訪問緩存后的編譯而不是重新編譯。CLR會自動檢測代碼的改變,如果代碼改變后,當(dāng)下次訪問時,相關(guān)代碼會被重新編譯。

數(shù)據(jù)源緩存

  數(shù)據(jù)源緩存,也就是利用數(shù)據(jù)源控件對獲取的數(shù)據(jù)進行緩存的方式。這些控件包括SqlDataSource,ObjectDataSource等,作為抽象類的DataSourceControl暴漏了如下屬性用于緩存:

  CacheDuration獲取或設(shè)置以秒為單位的一段時間,數(shù)據(jù)源控件就在這段時間內(nèi)緩存 SelectMethod 屬性檢索到的數(shù)據(jù);CacheExpirationPolicy獲取或設(shè)置緩存的到期行為,該行為與持續(xù)時間組合在一起可以描述數(shù)據(jù)源控件所用緩存的行為;CacheKeyDependency獲取或設(shè)置一個用戶定義的鍵依賴項,該鍵依賴項鏈接到數(shù)據(jù)源控件創(chuàng)建的所有數(shù)據(jù)緩存對象;EnableCaching 獲取或設(shè)置一個值,該值指示 ObjectDataSource 控件是否啟用數(shù)據(jù)緩存。

  而使用起來就非常簡單了,只需要將緩存的相關(guān)屬性進行設(shè)置即可。比如我想要當(dāng)前數(shù)據(jù)源緩存10秒,只需要設(shè)置EnableCaching屬性和CacheDuration屬性如下,這種方式的工作原理可以用下圖表示:

SQL Cache Dependency

  大家應(yīng)該注意到了上面的數(shù)據(jù)源控件還暴漏了CacheKeyDependency屬性,這是用于實現(xiàn)SQL Cache Dependency的方式,關(guān)于Dependency,其實就是在數(shù)據(jù)庫表內(nèi)容改變時,將相應(yīng)的緩存進行更新,正如Dependency這個詞的意思一樣,是緩存依賴底層數(shù)據(jù)庫。下面就要說到兩種實現(xiàn)SQL Cache Dependency的方法了。

方法一:使用輪流查詢機制(polling-based)

  這種方式實現(xiàn)機制是在sql server中插入以ASPNET_SqlCacheNotification_Trigger開頭的一個特殊的表和5個存儲過程,當(dāng)被監(jiān)測的表數(shù)據(jù)發(fā)生改變時,則一個名為ASPNET_SqlCacheTablesForChangeNotification的表被更新,而ASP.NET程序會根據(jù)用戶設(shè)置的間隔時間每隔一定時間檢查一下數(shù)據(jù)庫內(nèi)容是否更新,如果更新,則將緩存中的數(shù)據(jù)進行跟新。

  使用起來就很簡單了,可以在頁面頭部的OutputCache指令中設(shè)置,會社DataSource空間中進行設(shè)置,設(shè)置格式為:“數(shù)據(jù)庫名:表名”.里面的表名即是需要監(jiān)測是否改變的表名,示例如下:

# <%@ OutputCache Duration="30" VaryByParam="none" 
SqlDependency
="DatabaseName:tableName" %>

NET技術(shù)ASP.NET緩存初探 使用得當(dāng)是關(guān)鍵,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人精品一区二区 | 欧美伊人久久久久久久久影院 | 综合久 | 国产精品国产三级国产aⅴ无密码 | 日本在线你懂的 | av大片 | 中国一级特黄视频 | 欧美中文在线 | 一区二区在线不卡 | 在线永久看片免费的视频 | 成人av网站在线观看 | 国产成人99久久亚洲综合精品 | 91精品国产91久久久久久最新 | 黄瓜av| 精品久久久久一区二区国产 | 免费的日批视频 | 日韩欧美精品一区 | 香蕉一区| 欧美白人做受xxxx视频 | 免费一级欧美在线观看视频 | 久久鲁视频| 欧美精品在线免费观看 | 欧美日韩高清在线一区 | 日韩免费高清视频 | 国产精品性做久久久久久 | 免费观看的av毛片的网站 | 天堂综合 | 99精品视频一区二区三区 | 日韩成人在线播放 | 国产在线观看一区二区 | 亚洲精品视频一区二区三区 | 99pao成人国产永久免费视频 | 国产精品亚洲综合 | 一区观看 | 国产午夜精品一区二区三区四区 | 视频在线亚洲 | 久久久女女女女999久久 | 亚洲av一级毛片 | 成人亚洲一区 | 国产在线观看网站 | 中文字幕一页二页 |