报告级别的外部联接绩效问题

2020-09-26 20:24发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

SAP Crystal报告版本:2008。

问题描述:当我们在2列上有2个不同的数据库表联接时,报告级别的外部联接性能问题

影响:查询花费了大约4分钟的时间,但作为生产现有报告的时间应该是30秒

受影响的用户数:350

预先感谢

Priyanka。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

SAP Crystal报告版本:2008。

问题描述:当我们在2列上有2个不同的数据库表联接时,报告级别的外部联接性能问题

影响:查询花费了大约4分钟的时间,但作为生产现有报告的时间应该是30秒

受影响的用户数:350

预先感谢

Priyanka。

付费偷看设置
发送
3条回答
三十六小时_GS
1楼-- · 2020-09-26 21:13

嗨,普里扬卡

当您将两个不同的源合并在一起时,性能会下降。

CR必须先从第一个数据源读取所有数据,然后再从下一个数据源读取数据,然后再将它们连接在一起-此过程会降低报告的性能。

如果希望更快地运行此报告,则应使用ETL解决方案将两个源合并到一个数据库中。

-Abhilash

95年老男孩
2楼-- · 2020-09-26 21:08

嗨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将此问题向前推进。

DafaDDDa
3楼-- · 2020-09-26 21:24

删除了您的电子邮件地址,不允许。

CR不支持主报表或子报表中的多个数据源,这就是子报表的用途,仅单个数据源。

在这种情况下,过滤将是客户端。

我建议您创建一个存储过程,并在可能的情况下链接服务器端。

一周热门 更多>