簡體   English   中英

我應該使用哪種ASP.NET緩存技術來緩存視圖查詢的結果?

[英]Which ASP.NET cache technique should I use to cache the results of a view query?

該方案是一個帶有GridView的ASPX頁面,該GridView顯示來自SqlDataSource的數據,該數據配置為從基於次優查詢的數據庫視圖中選擇行(我目前沒有時間來修復)。

我將有關ASP.NET的大書打開到有關緩存的100頁一章,並意識到它非常復雜,所以我只是想知道是否有人可以想象這種情況,並專門告訴我他們可以用來解決問題的技術(除了使查詢速度更快)。

此外,GridView具有可排序的列,並包含在UpdatePanel中。

提前致謝。

這不必很復雜,它可以像這樣簡單:

public DataSet GetMyViewData()
{
    var results = HttpContext.Current.Cache["myViewResults"] as DataSet;

    if(results == null)
    {
        results = GetMyQueryResults();
        HttpContext.Current.Cache["myViewResults"] = results;
    }

    return results;
}

當然,這取決於數據的大小,所需的新鮮程度等,等等,但是從緩存中添加和獲取數據很容易。

此外,如果您正在談論WebForms,則僅在需要緩存Select語句的結果時,SqlDataSource控件將公開EnableCachingCacheDuration策略。 您所要做的就是設置控件上的屬性,如下所示。

從MSDN:

<asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM