程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server 高速緩存依附剖析

SQL Server 高速緩存依附剖析

編輯:MSSQL

SQL Server 高速緩存依附剖析。本站提示廣大學習愛好者:(SQL Server 高速緩存依附剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server 高速緩存依附剖析正文


一,使數據庫支撐SQL高速緩存依附性。
二,使表支撐SQL高速緩存依附性。
三,在ASP.NET運用法式的web.config文件中包括SQL銜接字符串。
四,以以下方法應用SQL高速緩存依附性:
     1)在代碼中編程創立一個SqlCacheDependency對象。
     2)給OutputCache指令添加SqlCacheDependency屬性。
     3)經由過程Response.AddCacheDependency給Response對象添加一SqlCacheDependency實例。

開啟高速緩存依附性的參數扼要解釋
-d <database>     用於SQL高速緩存依附性的數據庫名。數據庫可使用銜接字符串和-c選項指定(必選)
-ed               許可數據庫啟用SQL高速緩存依附性。
-dd               制止數據庫啟用SQL高速緩存依附性。
-et               許可表啟用SQL高速緩存依附性。須要-t選項。
-dt               制止表啟用SQL高速緩存依附性。須要 -t 選項。
-t <table>         支撐或制止SQL高速緩存依附性的表名。須要 -et 或 -dt 選項。
-lt               列出一切啟用SQL高速緩存依附性的表。

在SQL Server 2000中應用高速緩存禁用功效(在2005中也能夠停止以下設置)
要在SQL 2000中應用高速緩存禁用功效,必需履行以下兩步:
第一步是使響應的數據庫支撐該功效。
第二步是使要應用的表支撐該功效。
例:
aspnet_regsql -S localhost -U sa -P sa -d Northwind -ed
注:將本機上的Northwind數據庫開啟高速緩存依附功效。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -dd
注:禁用本機上的Northwind數據庫的高速緩存依附功效。應用次敕令後,數據庫中的一切表的高速緩存禁用功效都主動封閉,AspNet_SqlCacheTablesForChangeNotification表也會主動刪除。
開啟表的高速緩存依附功效。
例:
aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -et
注:為Northwind數據庫中的Products表開啟高速緩存依附功效。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -dt
注:為 Northwind數據庫中的Products表封閉高速緩存依附功效。經由過程這個辦法可認為一個數據庫中的一個或多個表開啟高速緩存依附功效。為數據庫和表開啟高速緩存依附功效後,可以發明Northwind數據庫中添加了一個 AspNet_SqlCacheTablesForChangeNotification表,表現設置裝備擺設勝利了。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -lt
應用-lt參數可以檢查該數據庫中哪些表開啟了高速緩存依附功效。假如數據庫封閉了高速緩存依附或許沒有啟用高速緩存依附功效,應用此敕令將會獲得毛病提醒。

關於SQL 2005的高速緩存禁用功效
SQL Server 2005支撐高速緩存的編程和聲明技巧。在OupputCache指令中應用CommandNotification字符串便可以給頁面樹立基於告訴的高速緩存。可以編程指定SQL高速緩存選項,或聲明該選項,但不克不及同時應用這兩種辦法。SQL2005的緩存依附無需web.config的設置裝備擺設,也不消為數據庫和表開啟緩存依附功效,因為05內置了一個告訴傳遞辦事,該辦事可以完成檢測數據的更改、完成更改告訴傳遞等功效,是以不須要赓續輪詢數據庫來檢測數據更新了。
注:固然05中的緩存依附應用很簡略,但今朝我還沒有找到更多的相干材料,還沒有親身停止測試,重要緣由還沒弄清晰怎樣能力開啟Broker辦事,今後有時光在停止測試吧。

設置裝備擺設ASP.NET運用法式
應用數據庫和個中的幾個表支撐SQL Server高速緩存禁用功效後,就要為SQL Server高速緩存禁用功效設置裝備擺設運用法式。
要設置裝備擺設運用法式,以應用SQL Server高速緩存禁用功效,起首應修正web.config文件。在此文件中,指定要應用的數據庫,並讓ASP.NET銜接它。
如:
    <connectionStrings>
         <add name="NorthwindConnectionString" connectionString="Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=sa"
             providerName="System.Data.SqlClient" />
     </connectionStrings>
     <system.web>
      <caching>
         <sqlCacheDependency enabled="true" pollTime="500">
           <databases>
             <clear/>
             <add name="Northwind" connectionStringName ="NorthwindConnectionString" pollTime="500"/>
           </databases>
         </sqlCacheDependency>
       </caching>
     </system.web>
注:起首應用web.config文件中的<connectionStrings>元素,樹立了與數據庫的銜接字符串。然後經由過程<caching>元素為SQL Server高速緩存功效停止設置裝備擺設。如果應用SQL Server高速緩存依附性,所以必需應用<sqlCacheDependency enabled="true">節點,並啟用該功效。在<databases>節點中援用數據庫。
<add>元素中的屬性解釋:
name:為SQL Server數據庫供給一個標識符。
connectionStringName:指定銜接的稱號。
pollTime:指定SQL Server輪番檢測的時光距離,默許為5秒或500毫秒。SQL 2005告訴功效不須要這個屬性。
web.config 文件設置裝備擺設准確後,便可以在頁面上應用SQL Server高速緩存禁用功效了。ASP.NET會把SQL Server要求放在AspNet_SqlCacheTablesForChangeNotification表的一個完整分歧的線程上,看看 changeId號能否遞增了,假如該數字有變更,ASP.NET就曉得對底層的SQL Server表停止了修正,應檢索一個新的成果集。它肯定能否應停止SQL Server挪用時,對AspNet_SqlCacheTablesForChangeNotification表的要求會獲得一個成果,啟動了SQL Server高速緩存禁用功效後,這些履行得異常快。

為頁面添加多個表,以下(用分號離隔):
<%@ OutputCache Duration="3600" VaryByParam="none" SqlDependency="Northwind:Employees;Northwind:Customers" %>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved