反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

大数据量模板优化思路

  • 文档创建者:知识库
  • 历史版本:3
  • 最近更新:Wendy123456 于 2021-11-24
  • 1. 概述

    大数据量模板优化方法请参见:

    6.png

    2. 具体解决方案

    注:模板检测助手 可以发现可能导致模板性能出现问题的地方,提醒给用户并提供建议修改方案。

    问题痛点应用场景
    解决方案备注
    减少格子数及格子数相同下的优化行列调优列转行1)产品逻辑:格子数相同情况下,列越多,计算越慢
    2)大数据情况下一个 sheet 100 行,比两个 sheet 每个 50 行要慢
    3)列转行更多的是提供一种减少方向,尽可能减少列多的用法,运用到实际场景中可能有:减少交叉模板使用,专注使用行式明细模板
    减少行列、格子数1)通过取数限制减少行,如mysql 中 limit 100(如果有求和且需要保持全量可以用sql函数)

    2)减少展示的列数

    特例:遇到纵向列为id,横向行为时间的设计,数据源本来就1W行,最终格子数确是 1W(列数)*40(日期数),其中格子实际使用数不到3%,大片都是空白格
    格子内计算-公式存在层次坐标、sql类函数减少层次坐标、SQL 类函数(sql,value,map、select)在扩展行的使用SQL 类函数在即时取数时每一个行都会独立执行一遍sql、填报校验时同理
    模板存在大量被公式调用的图片1)安装 外置图片插件 、把内置图片都改为外置图片

    2)单元格把数据转图片的方法的优先使用顺序:html>webimage>toimage>单元格图片

    -
    格子内计算-控件控件数量、使用可以简化的场景减少控件使用,如纯导入模板,不配置控件经测试发现,导入一个 200 行 10 列的 Excel,增加控件的模板需要 100 秒左右才可以完成页面加载,去掉控件的模板只需要 10 秒左右
    控件数据字典优化控件数据字典尽量用数据集并开启缓存,尽可能不要直接用数据查询-
    控件默认值优化

    1)简化或者去掉控件默认值

    2)控件默认值,工具栏,加载事件中尽量不要用单元格如=A1

    3)下拉树控件设置全选或联动时、不用sql函数,把sql函数的语句放在数据集里面,然后默认值里把sql函数的部分换成value

    控件里的参数默认值也是在初始化时计算的,不是在点击的时候才计算,如果按钮控件里大量调用sql函数,并且计算时间较久,也会对模板加载时间产生影响

    参数面板控件默认值同样引发性能问题

    客户允许不开启直接显示控件不开启直接显示控件当一个页面的控件数量超过 100 个,就会拖慢页面展现速度,超过 500 就很容易造成超时
    格子内计算-控件相关js计算按钮控件里的参数默认值过久修改js按钮控件控件里的参数默认值也是在初始化时计算的,不是在点击的时候才计算,如果按钮控件里大量调用sql函数,并且计算时间较久,也会对模板加载时间产生影响
    条件属性中使用sql函数做控件联动不要在条件中使用sql函数写sql语句,优化下sql的取数时间或者换用其他方式实现-
    新填报预览js实现复选框全选-

    经测试确认:

    setcellvalue第一次赋值时,并不会成功赋值上,需要赋值两次。新填报预览的逻辑跟填报预览不一样,新填报预览是分页加载的效果,在这种JS实现全选的效果下,如果数据量很大,也会导致不能实现全选的效果

    新计算引擎下拉树加载慢数据量不多的情况下,可以换成多个控件联动实现需求-
    下拉框控件联动勾选允许控件直接编辑和允许自定义值不勾选的话会读控件默认值,如果客户的控件默认值是写的数据集里的字段,且这个数据集也是有参数的,就会导致sql一直重读
    格子内计算-父子格笛卡尔积防止填报笛卡尔积
    提交入库时如果重复提交了很多数据(不只重复一次),很可能是单元格的父子格设置导致成为笛卡尔积的形式提交了,所以需要检查父子格设置
    模板扩展行支持使用统一左父格所有格子尽量使用同一个父格、而不是依次继承-
    过滤配置推荐同一行不同格子设置过滤的时候,尽量只对第一个格子设置过滤-
    列表、分组的选择大数据量的明细模板,列表展示比分组快-
    格子内计算-其他条件属性实现隐藏行列、行变色1)使用条件属性的时候,如果对单个单元格设置条件属性就能满足需求的情况下,就只对一个格子设置条件属性,不要对每个格子设置,例如隔行显示背景色,配合为整行生效。

    2)如果可以直接隐藏行列,则不用条件属性隐藏

    -


    附件列表


    主题: 性能优化
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526