我正在创建一个显示大量数据的ASP.Net网站。数据通过数据访问层提供给我。根据我得到的数据,我正在构建大型数据表,然后使用gridview或动态创建的Web控件来显示这些数据表。
我发现的问题是,当大量数据传递给网站时网站速度很慢。我已经读过数据读取器是要走的路,但由于需要使用数据访问层,我无法直接从SQL表中使用datareader。
我也没有部分填充数据表的选项,因为我需要对数据应用大量的排序方法来显示我需要的内容。
有关加速数据表的方法的建议吗?或者使用更有效的其他东西?
答案 0 :(得分:1)
由于您“正在构建大型数据表,然后使用gridview或动态创建的Web控件显示这些数据表”,因此网络可能成为瓶颈。请参阅可能有用的类似SO question的答案。
答案 1 :(得分:0)
将“大量”数据拉入Web应用程序并进行排序/过滤总是会变慢,具体取决于您对“大”的定义。如果您可以在将数据提取到Web应用程序之前对数据库服务器应用任何排序/筛选,这应该可以加快速度。你说你没有选择这样做,但排序是数据库服务器的用途,你确定你不能使它工作吗?
答案 2 :(得分:0)
您可以使用分布式缓存来缓存数据。 Memcache(http://www.danga.com/memcached/)或Velocity Microsoft分布式缓存(http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&displaylang=en)。
答案 3 :(得分:0)
您要做的第一件事就是精确确定流程的哪个部分很慢。它可能不是你认为的那样。进行代码分析或不同部分的定时,以确定每个代码在请求期间消耗的时间。在我们的例子中,我们发现数据层(执行读取器,填充对象模型)非常快(有几个异常由数据库中的索引处理),而我们在客户端上有一些非常慢的javascript
因此,从测量开始,然后决定优化的位置。
答案 4 :(得分:0)
您是否完全确定瓶颈在Web应用程序中?
我要做的第一件事就是猜测你在慢速页面上执行的最长的SQL查询是什么,然后看看它在查询浏览器中的运行方式。
如果速度很慢,请继续优化。