【问题标题】:ASP.Net Data Driven Website EfficiencyASP.Net 数据驱动的网站效率
【发布时间】:2009-04-23 10:25:39
【问题描述】:

我正在创建一个显示大量数据的 ASP.Net 网站。数据通过数据访问层提供给我。从我得到的数据中,我正在构建大型数据表,然后使用 gridview 或动态创建的 Web 控件显示这些数据表。

我发现的问题是,当大量数据传递给网站时,网站速度很慢。我读过数据阅读器是要走的路,但由于需要使用数据访问层,我不能直接从 SQL 表中使用数据阅读器。

我也没有部分填充数据表的选项,因为我需要对数据应用很多排序方法来显示我需要的内容。

对加快数据表速度的方法有什么建议吗?或者也许使用其他更有效的方法?

【问题讨论】:

    标签: asp.net performance datatable


    【解决方案1】:

    由于您“.. 构建大型数据表,然后使用 gridview 或动态创建的 Web 控件显示这些表”,因此网络可能成为瓶颈。请参阅可能有帮助的类似 SO question 的答案。

    【讨论】:

      【解决方案2】:

      您确定瓶颈在 Web 应用程序中吗?

      我要做的第一件事是猜测您在慢速页面上执行的最长 SQL 查询是什么,然后看看它在查询浏览器中是如何运行的。

      如果速度很慢,请进行优化。

      【讨论】:

        【解决方案3】:

        将“大量”数据拉入 Web 应用程序并在那里进行排序/过滤总是很慢,具体取决于您对“大型”的定义。如果您可以在将数据拉到 Web 应用程序之前在数据库服务器上应用任何排序/过滤,这应该会加快速度。您说您无法选择执行此操作,但排序是数据库服务器的任务,您确定无法执行此操作吗?

        【讨论】:

          【解决方案4】:

          您可以使用分布式缓存来缓存您的数据。 Memcache (http://www.danga.com/memcached/) 或 Velocity Microsoft 分布式缓存 (http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&displaylang=en)。

          【讨论】:

            【解决方案5】:

            您要做的第一件事是准确确定进程的哪个部分运行缓慢。它可能不是你想的那样。对不同部分进行代码分析或计时,以准确确定每段代码在请求期间消耗的时间。在我们的案例中,我们发现数据层(执行读取器、填充对象模型)非常快(有几个例外由数据库中的索引处理),而客户端上有一些非常慢的 javascript .

            所以,从测量开始,然后决定在哪里进行优化。

            【讨论】:

            猜你喜欢
            • 2011-02-05
            • 2011-03-24
            • 1970-01-01
            • 2012-07-19
            • 1970-01-01
            • 1970-01-01
            • 2012-01-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多