在这篇文章中,我们将总结数据透视表控件的关键功能,这些功能在绑定到一百万条原始数据记录时将有助于其呈现性能。
数据透视表用于显示统计汇总,例如数据的总和和平均值。实时绘制数据透视表处理的数据非常庞大,通常接近一百万条记录。
数据透视表被认为在处理大量数据方面非常高效,因此,为了满足快速处理一百万条记录的需求,Syncfusion创建了用于Web平台的数据透视表控件。数据透视表控件包含在Essential Studio for JavaScript中。
Essential Studio for JavaScript
尽管它非常高效,但是要充分利用我们的数据透视表,您需要遵循一些最佳实践。
在这篇文章中,我们将总结数据透视表控件的关键功能,这些功能在绑定到一百万条原始数据记录时将有助于其呈现性能。
使用一百万个数据点渲染数据透视表控件
借助虚拟滚动功能,用户可以在Web浏览器中查看大量数据,而不会出现性能延迟。使用此功能,仅将来自当前页面的信息附加到DOM,并且随着页面的滚动,动态检索数据以刷新数据透视表。
向下/向上、过滤、排序、聚合和计算字段之类的基本功能可以有效地与大型数据源一起使用。
作为对钻取功能的附加考虑,仅可见信息用于计算并与枢轴引擎合并。这样可以避免重新计算层次结构中所有可用成员的值。
例如,考虑一个具有八列的数据透视表,其中用户将成员扩展为一行。在这种情况下,仅可见列将用于针对扩展行进行计算。数据透视表引擎更新后,数据透视表将在DOM中自动刷新。
与向下钻取机制一样,其他功能(如排序、过滤、聚合等)仅涉及可见数据部分进行计算,而不是全部数据,以实现更好的数据透视表控制。浏览器应用程序的CPU和内存使用率也保持在最佳水平。
作为参考,请查看在GitHub上展示数据透视表性能的示例。下表列出了启用和禁用虚拟滚动功能时的性能差异,

具有许多记录的高性能过滤器对话框
当数据透视表控件绑定到大型数据源时,某些字段的成员计数可能会很高。在这种情况下,打开过滤器对话框将影响性能。因此,为了呈现大量成员而没有任何性能延迟,我们提供了限制要在过滤器对话框中显示的成员数量的措施。另外,用户可以借助过滤器对话框中可用的搜索选项来过滤多余的成员。
在GitHub上查看成员过滤器对话框性能的样本。请在下表中找到随着成员数量增加而增加的处理时间,
会员数 | 查看对话框所需的时间 |
1千 | 2秒 |
2千 | 6秒 |
5千 | 35秒 |
按需刷新数据透视表
与Microsoft Excel一样,我们的数据透视表控件也支持延迟的布局更新。这允许最终用户在行、列、值轴和过滤器轴之间拖放字段,以在字段列表中应用排序和过滤,从而导致对数据透视表 表而不是数据透视表进行了更改。完成所有操作后,数据透视表将开始刷新上一次修改的 告。这有助于在数据透视表呈现中提供更好的性能。
如何有效处理日期类型字段
对于大型数据源,如果任何字段均为日期类型,则建议禁用排序。
原因是分配给数据透视表的原始数据将是字符串类型,并且对日期值进行排序时,将生成错误的结果。因此,在生成枢轴引擎期间,我们将解析值并找到它们的数据类型并对它们进行格式化。
作为参考,请查看显示如何在GitHub上处理日期类型字段的示例。
改善数据透视表的性能时,请按日期分组
日期类型可以按其单独的单位进行格式化和显示,例如年,季度,月,日,小时,分钟或秒。为此,应将源代码中消耗的输入日期值分隔开,并用必要的字段进行重新构架,这显然会导致性能限制。
例如,如果字段“StartDate”在原始数据中保留值“15 / AUG / 2019 03:41 PM”,并且如果用户希望仅显示年份和月份,则将发生日期分组,例如“StartDate_Year” ”=“2019”和“StartDate_Month” =“AUG”,然后才开始执行枢轴引擎准备。
为解决此问题,我们建议将日期分割后的数据源传递到单独的字段中,这样可以避免源代码中的拆分过程,并直接开始准备数据透视表引擎以显示数据透视表。
作为参考,请查看示例,该示例显示了GitHub上大型数据源中日期分组的替代解决方案。下表提供了遵循该技术时的性能改进数据。

结论
在此文章中,我们浏览了数据透视表控件的面向性能的功能和建议。您随时可以下载我们的免费评估版,以查看我们所有的控制措施。
想要购买该产品正版授权,或了解更多产品信息请点击“咨询在线客服”

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!