C# 如何加载网站';s摘要内容更快?

C# 如何加载网站';s摘要内容更快?,c#,sql,asp.net,sql-server,xml,C#,Sql,Asp.net,Sql Server,Xml,我在我的网站主页上有一个方法,它加载我网站的摘要内容,如最近的新闻、最近的帖子、访问量最大的帖子等。所有数据都是从SQL数据库表加载的。这种方法每次用户访问调用一次(每天超过40000次),因此我每天有40000个不必要的数据库连接,因为这些数据通常每天最多更改4或5次 我的问题是:优化页面加载速度和仅在更改时连接到数据库的解决方案是什么 我有一个解决办法,但我不确定。只有在数据更改时,我才能连接到数据库,获取内容数据集并将其写入XML文件,然后从母版页读取XML文件 请告诉我最好的解决方案以及

我在我的网站主页上有一个方法,它加载我网站的摘要内容,如最近的新闻、最近的帖子、访问量最大的帖子等。所有数据都是从SQL数据库表加载的。这种方法每次用户访问调用一次(每天超过40000次),因此我每天有40000个不必要的数据库连接,因为这些数据通常每天最多更改4或5次

我的问题是:优化页面加载速度和仅在更改时连接到数据库的解决方案是什么

我有一个解决办法,但我不确定。只有在数据更改时,我才能连接到数据库,获取内容数据集并将其写入XML文件,然后从母版页读取XML文件

请告诉我最好的解决方案以及你对我的解决方案的看法


谢谢

我看你的解决方案没有问题。我要添加的唯一内容是页面:

  • 读取xml文件(如果存在)
  • 读取后删除该文件
  • 使用ASP.Net缓存来缓存文件的内容
  • 现在,母版页将首先检查文件是否存在,如果文件存在,则表示数据已更改,需要更新缓存。如果文件不存在,缓存中的数据是我们拥有的最新数据,可以使用


    从缓存(服务器RAM)中提取数据真的很快,比读取文件(文件IO)要快,这比连接到数据库并从数据库中获取数据要快得多。

    我不知道您是如何检测到数据更改的,在我的例子中,我有一个
    数据表
    ,当用户添加或修改记录时,我设置了
    null
    my
    DataTable
    变量,当我再次调用它时,它也会每5分钟被删除一次,因为
    DateTime.Now.AddMinutes(5d)


    您看到新数据的紧迫程度如何?如果您不介意数据过时(比如)2分钟,那么只需在。。。我想你会发现这比变更检测更容易实现。不。这并不紧急。如何缓存?这是一个非常广泛的问题-我建议你做一些研究。。。
    DataTable dtJobs
    {
        get { if (Cache["dtJobs"] == null) Cache["dtJobs"] = Provider.Job.getAll(); return (DataTable)Cache["dtJobs"]; }
        set { if (value != null) Cache.Insert("dtJobs", value, null, DateTime.Now.AddMinutes(5d), System.Web.Caching.Cache.NoSlidingExpiration);
              else Cache.Remove("dtJobs");
        }
    }