SQL函数的性能较差,当数据量大时会导致加载缓慢。您的报表同时支持填报和查看功能,使用多个SQL函数会加剧性能问题。
优化方案
替换SQL函数
优先使用value()函数替代sql()和ds1.select()函数,因为value()的性能最好
示例:将sql("ds1","select name from table")改为value("ds1","name")
分离查看和填报功能
虽然业务希望保持现有方式,但可以考虑:
为查看功能单独创建一个模板,使用优化的查询方式
填报模板专注于数据录入功能,减少复杂查询
使用抽数缓存
建议可以使用抽数缓存功能优化取数速度
对频繁查询但变化不大的数据启用缓存
优化SQL查询
确保SQL语句本身高效,添加适当的索引
通过查询条件限制每次查询的数据量
条件控制
性能对比
函数类型 | 性能排名 | 适用场景 |
---|
value() | 最优 | 简单数据查询 |
ds1.select() | 中等 | 中等复杂度查询 |
sql() | 最差 | 复杂查询(尽量避免) |

建议优先尝试用value()函数替换现有的sql()函数,这通常能带来最明显的性能提升。如果必须使用复杂查询,再考虑其他优化方案。