如何解决汇总表查询速度慢的问题?
一个汇总表要查询2个以上模板数据时(库存汇总表就是这样情形),速度非常慢,尤其是单据有万条后,往往要等待20多分钟,非常痛苦!我尝试过多种办法都没效果,不知道哪位云友可有好办法解决? 我用过第一个办法:先把商品信息编码读进汇总表明细里来,然后用明细的值变化把商品编码逐一写到基本表的“编码”里(这里用了支持分页),再用基本表这个“编码”的值变化将入库单和出库单的明细数据分期初数(开始日期前计算的余额)和本期发生的出库和入库合计数据写到明细的每一行。这个方法及其慢。第二个办法:把出库和入库单的明细都查出来放在一个临时表里,然后再用汇总方式查询这个临时表,速度也慢
第三个办法:在每个月结束时,利用结账操作生成当月汇总表,然后供汇总查询表跨月查询。
最后一个办法有明显改善,但月份多后还是比较慢
请求解决方法
其实我认为第三种方法是可行的,因为查询的话本来就相当于在数据库中进行操作,每一个查询也相当于在数据库中执行一次,因为月份多的话也是相当于在数据库中的存储比较多了,云表数据库是mysql,可以使用数据库优化的相关知识去操作一下。 yangyf 发表于 2023-4-4 09:22
一个汇总表要查询2个以上模板数据时(库存汇总表就是这样情形),速度非常慢,尤其是单据有万条后, ...
提供几点建议:
1.用业务公式,服务器和数据库比填表公式效率高很多,尤其是数据量越大越明显
2.关联条件上创建索引,主键或唯一索引更好
3.计算如果过于复杂可以用临时表
4.定位慢SQL,检查执行计划是否正确,并优化;
5.如果业务逻辑和数据量还是大,还可以用存储过程。我第一个项目是一个分析型的,数万条记录,100多个指标的运算,结果表有数十万条,执行时间也就1分钟
供参考
页:
[1]