快取是 ASP.NET 提升效能的核心手段。善用快取可容忍高耗能控件(如 GridView)帶來的開銷。本文系統整理三大層面:
頁面頂端加入指令:
<%@ OutputCache Duration="60" VaryByParam="*" %>
必要屬性:
* 表示全部參數)。進階屬性:Location(Any/Client/Server/None/ServerAndClient/Downstream)、VaryByHeader、VaryByCustom(如 "Browser")。
使用 Cache.Insert(key, value, dependencies, absoluteExpiration, slidingExpiration) 手動管理物件快取,支援檔案/鍵值/時間依賴。
SQL Server 2005+:啟用查詢通知,web.config 僅需:
<sqlCacheDependency enabled="true" />
SQL Server 2000:需輪詢機制,執行 aspnet_regsql 註冊資料庫/資料表,web.config 設定 pollTime 等屬性。
實測:自訂分頁(僅撈當頁資料)比預設分頁(全表撈回再篩選)快 2 倍以上;啟用 SqlDataSource 快取雖能減少資料庫往返,但首次仍需載入全量資料,且面臨過期資料風險,整體效能仍不及自訂分頁。