如何提高ASPxPivotGrid的性能

原创|其它|编辑:郝浩|2009-04-23 17:57:41.000|阅读 934 次

概述:DevExpress开发的ASPxPivotGrid组件是一个基于ASP.NET平台下的全面的数据分析、数据挖掘、和可视化报表的解决方案。它的出现不仅可以为新的解决方案去除数据分析方面的种种缺陷,也可以从根本上改善已有的大型数据分析软件在最终数据呈现上的不足,从而让你的最终用户能更好获取和分析相关数据。那么如何进一步提高ASPxPivotGrid的性能,对数据进行高效切分,从而为客户提供一个非常直观的终端用户体验呢?这里我们从两方面来说明问题。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

DevExpress开发的ASPxPivotGrid组件是一个基于ASP.NET平台下的全面的数据分析、数据挖掘、和可视化报表的解决方案。它的出现不仅可以为新的解决方案去除数据分析方面的种种缺陷,也可以从根本上改善已有的大型数据分析软件在最终数据呈现上的不足,从而让你的最终用户能更好获取和分析相关数据。那么如何进一步提高ASPxPivotGrid的性能,对数据进行高效切分,从而为客户提供一个非常直观的终端用户体验呢?这里我们从两方面来说明问题。

一、选择一个合适的数据源

我们说并不是所有的数据源都符合你的程序。如果你每次访问的数据量在150,000以下的话,你最好使用SqlSever数据库,如果数据量超过150,000行的话,你将考虑使用Analysis Services 即分析数据库,否则运行速度会很慢。当然如果你选择一个好的数据库服务器,那可以大于上面的数据,反之如果使用xml或者MS Access数据存储格式就可能更少了。

那么如何选择一个合适的数据库呢?首先,你需要估计一下你的数据量,PivotGrid每次发送请求的一个数据量。如果你不知道实际的记录数,你可以根据列的成员特性推测出来。例如,你有7列:产品种类(50), 产品子类别(1000), 产品 (50000),国家 (10),(400), (10000), 顾客 (50000),这里括号中的数字是对应成员特有的记录数。我们分析一下,上面“产品种类, 产品子类别,国家,省和市”其实根本就没有提供新的度量数据,“产品种类”和“产品子类别”其实是包含在“产品”中,而“国家,省和市”所产生的度量数据则体现在“顾客”信息记录中。因此我们很快就能通过“产品”和“顾客”的乘积得出记录数(50000 * 50000 = 2 500 000

二、性能优化以及对比

我们在选择了不同的数据库后,又该怎么提高PivotGrid的性能呢?

当你使用SQL Server作为PivotGrid的数据源的话,总体性能大概由加载数据的时间、计算的时间、数据绘制时间三部分组成。为了提高数据加载时间,你可以在数据服务器和Web服务器之间建立更好的连接,数据库服务器和Web服务器最好是使用同一台机器,调整数据服务器,以实现最佳的性能和缓存数据的检索。此外我们还可以在服务端优化查询语句,比如"select Category, Product, Sales from Sales" 查询改为 "select Category, Product, sum(Sales) from Sales group by Category, Product".这样很大程度上能减少PivotGrid本身计算的时间。

当你使用分析服务器作为数据源的话,对于每次请求它是不存在重载和重新计算数据的。它的数据和计算结果都是作为缓存,返回的仅仅是你请求的那部分数据。尽管这样,如果是小规模的查询那速度还是低于SQL Server,但在大型数据集上它将产生更好的效果。事实上,如果没有使用Analysis Services的数据源,对于上百万条的数据我想你是很难得到满意结果的。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:本站

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP