繁体   English   中英

如何减少MVC中第一个数据库请求的响应时间

[英]How to decrease response time of first db request in MVC

有时,我的第一个数据库调用花费的时间太长,无法呈现视图/页面。 大约需要10到12秒,然后第二次需要500毫秒,然后是200毫秒。 下面是我在项目中几种情况下运行的代码示例。 我正在使用存储过程。 我的项目结构是默认的mvc结构。

我已经检查了在Databse中运行StoredProcedure。 平均花费200-300毫秒,然后为什么加载整个页面大约需要12秒。 是我的主机问题,还是我该如何诊断该问题。

using (WebMatrix.Data.Database db1 = WebMatrix.Data.Database.Open("SQLTestDB"))
{
var PromoDetails = db1.Query("exec GetListingPromosV2 @0", id).ToList();
List<VMListingPromos> Lst = new List<VMListingPromos>();

foreach (var item in PromoDetails)
{
    VMListingPromos Listing_Promo = new VMListingPromos();
    Listing_Promo.PromoTitle = item.PromoName;
    Listing_Promo.Amount = item.Value;
    Listing_Promo.ExpirationDate = (item.ExpirationDate == null ? "NoDate" :     item.ExpirationDate.ToString("MM/dd/yyyy"));
    Listing_Promo.StartDate = (item.StartDate == null ? "NoDate" : item.StartDate.ToString("MM/dd/yyyy"));
    Listing_Promo.ListingPromoID = item.ID;
    Listing_Promo.status = item.status;
    Lst.Add(Listing_Promo);
}
return Lst;
}

听起来您的第一个请求可能没有打开的数据库连接池。 您可以尝试通过连接字符串设置最小数量的连接池,这样您的应用程序将始终保持打开的连接。

web.config中的示例连接字符串: <add name="WriteConnection" connectionString="Data Source=my-server-name;Database=my_database;User ID=user;Password=password;Application Name=app_name;Min Pool Size=1" providerName="System.Data.SqlClient" />

参考: https : //docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-1.1/8xx3tyca(v=vs.71)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM