2020-09-26 20:24发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
SAP Crystal报告版本:2008。
问题描述:当我们在2列上有2个不同的数据库表联接时,报告级别的外部联接性能问题
影响:查询花费了大约4分钟的时间,但作为生产现有报告的时间应该是30秒
受影响的用户数:350
预先感谢
Priyanka。
嗨,普里扬卡
当您将两个不同的源合并在一起时,性能会下降。
CR必须先从第一个数据源读取所有数据,然后再从下一个数据源读取数据,然后再将它们连接在一起-此过程会降低报告的性能。
如果希望更快地运行此报告,则应使用ETL解决方案将两个源合并到一个数据库中。
-Abhilash
嗨Abhilash,
感谢回复。
让我简要介绍一下这个问题。
我有3个命令查询,一个来自db2数据库,两个来自sql dabase
db2表已与sql table1联接,而同一db2表已与其他sql table2联接,因此我可以在show sql查询中看到两个外部联接
但是根据我的要求,我已经在sql table2中添加了rno列,并尝试在add命令中添加该查询,但是它不允许我,并且在粘贴我的查询之后,在add命令中没有加入条件并给出了链接 报表中的db2表和sql table2。 报告工作正常。 但是似乎在修改后的报表中创建了一个额外的外部联接,但是由于我们现有产品报告中的WHERE子句,实际查询中没有该外部联接。
通过其他外部连接,报告花费了大约4分钟的时间,但应该是30秒。
现有sql table2命令查询:
SELECT * from table2 WHERE Table2.ID = {?DSNOGW01:db2.PROCESS_ID}和" Table2"。" Unit_ID" = {?DSNOGW01:db2.UNIT_NO}
修改后的查询:
SELECT * from(选择Table2。*,row_number()到(Table2中按process1_ID asc划分的column1,coulmn2,column3,column4,column5顺序)rno)E WHERE E.rno = 1 EXTERNAL JOIN Table2 .ID = {?DSNOGW01:db2.PROCESS_ID}和" Table2"。" Unit_ID" = {?DSNOGW01:db2.UNIT_NO}
我想将where子句与修改后的查询中的更改放在一起,但不能。
我非常感谢Priyanka和Abhilash将此问题向前推进。
删除了您的电子邮件地址,不允许。
CR不支持主报表或子报表中的多个数据源,这就是子报表的用途,仅单个数据源。
在这种情况下,过滤将是客户端。
我建议您创建一个存储过程,并在可能的情况下链接服务器端。
唐
最多设置5个标签!
嗨,普里扬卡
当您将两个不同的源合并在一起时,性能会下降。
CR必须先从第一个数据源读取所有数据,然后再从下一个数据源读取数据,然后再将它们连接在一起-此过程会降低报告的性能。
如果希望更快地运行此报告,则应使用ETL解决方案将两个源合并到一个数据库中。
-Abhilash
嗨Abhilash,
感谢回复。
让我简要介绍一下这个问题。
我有3个命令查询,一个来自db2数据库,两个来自sql dabase
db2表已与sql table1联接,而同一db2表已与其他sql table2联接,因此我可以在show sql查询中看到两个外部联接
但是根据我的要求,我已经在sql table2中添加了rno列,并尝试在add命令中添加该查询,但是它不允许我,并且在粘贴我的查询之后,在add命令中没有加入条件并给出了链接 报表中的db2表和sql table2。 报告工作正常。 但是似乎在修改后的报表中创建了一个额外的外部联接,但是由于我们现有产品报告中的WHERE子句,实际查询中没有该外部联接。
通过其他外部连接,报告花费了大约4分钟的时间,但应该是30秒。
现有sql table2命令查询:
SELECT * from table2
WHERE Table2.ID = {?DSNOGW01:db2.PROCESS_ID}和" Table2"。" Unit_ID" = {?DSNOGW01:db2.UNIT_NO}
修改后的查询:
SELECT * from(选择Table2。*,row_number()到(Table2中按process1_ID asc划分的column1,coulmn2,column3,column4,column5顺序)rno)E WHERE E.rno = 1
EXTERNAL JOIN Table2 .ID = {?DSNOGW01:db2.PROCESS_ID}和" Table2"。" Unit_ID" = {?DSNOGW01:db2.UNIT_NO}
我想将where子句与修改后的查询中的更改放在一起,但不能。
我非常感谢Priyanka和Abhilash将此问题向前推进。
删除了您的电子邮件地址,不允许。
CR不支持主报表或子报表中的多个数据源,这就是子报表的用途,仅单个数据源。
在这种情况下,过滤将是客户端。
我建议您创建一个存储过程,并在可能的情况下链接服务器端。
唐
一周热门 更多>