千家信息网

报表里有4个SQL数据集但报表查完很慢该怎么办

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,今天就跟大家聊聊有关报表里有4个SQL数据集但报表查完很慢该怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。你要确认一下执行完 SQL 结
千家信息网最后更新 2024年09月22日报表里有4个SQL数据集但报表查完很慢该怎么办

今天就跟大家聊聊有关报表里有4个SQL数据集但报表查完很慢该怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

你要确认一下执行完 SQL 结果是否都加载了,像 PL/SQL Developer 查完就只加载部分。

不过报表运行时间肯定是要比数据库查 SQL 慢的,如果慢很多可能是因为在报表里关联多个数据集导致的。可以检查一下在报表单元格里是否有类似:ds2.select(name,id==ds1.cusid) 这样的表达式,表示数据集 2 和数据集 1 通过某个字段实现关联。

几乎所有报表工具在完成多数据集关联时都采用顺序遍历的方式实现,先拿一个数据集的第一条记录去第二个数据集中遍历查找符合条件的记录,然后是第二条,第三条…,数据量大的时候性能就会很低。画个图看一下:

在报表里关联这两个数据集就要遍历数据集 ds1 记录数(100 万)次数据集 ds2,总共比较 100 万 *1000 次。。。速度当然慢了。

要解决这个问题,得想办法把关联计算改到为报表准备数据那个阶段,方法有两个。

一、用 SQL 完成原来 4 个数据集的关联

写个复杂 SQL,把原来 4 个数据集的 SQL 整合成一句,让数据库完成关联计算(HASH JOIN),这样会快很多。当然这种做法有几个限制:

1、 不能跨库。如果原来的 4 个数据集来自不同数据库,就不能这么干了。异构源当然也不行;

2、 不能有存储过程。改造存储过程的成本太高,而且需要相应数据库权限;

3、 SQL 太复杂不好整合。有时报表的数据集 SQL 都很复杂,还带有很多参数(报表传过来的),很难整合到一起。其实这正是报表里要用多数据集的原因,报表工具支持多数据会带来很多方便,但会影响性能。

二、直接用带强计算能力的报表工具

有一些报表工具带脚本计算能力,这样就可以事先关联完多个数据集。这样就改变了原来要么在数据库里关联(很多情况没法实现),要么在报表模板里关联(性能太低)的状况,性能往往能提升几倍到几十倍。

这个文章介绍了详细的实施过程: 如何提高多源关联报表性能 ,里面举的三个例子性能分别提升了 5 倍、26 倍和 44 倍,效果比较明显。

而且,这个工具有了脚本能力还支持跨库,文件、NoSQL 这些数据源,也能调用存储过程,解决了数据库面临的那些问题。

看完上述内容,你们对报表里有4个SQL数据集但报表查完很慢该怎么办有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

数据 报表 关联 性能 数据库 工具 过程 复杂 内容 能力 存储 支持 整合 两个 多个 脚本 问题 怎么办 不同 不行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 甘肃网络安全与信息化王处长 哪个组织管理根域名服务器 工业级串口服务器多少钱 dell服务器智能管理系统 嵌入式软件开发分为两种 东莞网络安全绘画 海门口碑好的网络技术诚信经营 杭州开票安全接入服务器地址 2016年武汉网络安全 数据库中主要管理对象 车载多媒体融合网络技术标准 服务器的安全问题有哪些 浦东新区软件开发技术服务业务 差旅天下网络技术股份公司 vb创建1个数据库 最大容量数据库 服务器需要多大内存 天猫网络安全工程师 委托软件开发帐务处理 微信语音数据库 荒野行动国际服哪里有服务器 wex5 查询数据库 中国数字产业联盟网络安全 电脑中的网络安全设置 斗罗大陆我的世界服务器变成服主 苏州智喵互联网络科技有限公司 南京网络营销软件开发哪个好 保证网络安全最主要的因素是 移动云 云数据库 dream的服务器在哪里
0