CDS视图中多个表上的关联

2020-08-20 20:06发布

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

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


专家您好,

我是ABAP CDS视图的新手,想加入4个表。 我读了许多性能优化博客,并且意识到不适合(在性能方面)连接4个表。 但是我想知道我们是否可以在这4个表之间应用关联。 会比参加4张桌子更好吗? 还是应该在一个CDS视图中使用关联? 还是我应该对CDS视图进行分层? 任何帮助将不胜感激。

预先感谢,
Rashmi

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

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


专家您好,

我是ABAP CDS视图的新手,想加入4个表。 我读了许多性能优化博客,并且意识到不适合(在性能方面)连接4个表。 但是我想知道我们是否可以在这4个表之间应用关联。 会比参加4张桌子更好吗? 还是应该在一个CDS视图中使用关联? 还是我应该对CDS视图进行分层? 任何帮助将不胜感激。

预先感谢,
Rashmi

付费偷看设置
发送
3条回答
Doze时光
1楼 · 2020-08-20 21:05.采纳回答

您好 Rashmi Khemani

如果创建了关联并且 在cds视图内使用(意思是:如果您要在cds视图中公开关联的字段之一,如下所示:)

 maintablefield1,
 maintablefield2,
 association1.field1 

,那么它的行为与仅联接相同。

如果不使用cds视图内的关联字段,则将不应用联接。 现在的问题是,为什么我们需要联系呢? 其他用例,例如odata服务将使用它来生成关联和子实体,或BOPF等使用。

如果您认为使用join是合理的,则可以使用它。 如果您的系统运行在hana上,请毫无后顾之忧。 但是,请不要暴露所有会导致性能问题的不必要字段。

BR,

Mahesh

歪着头看世界
2楼-- · 2020-08-20 21:02

尊敬的Rashmi,

请介意以下最佳实践,以遵循ABAP CDS开发。

https://www.sap。 com/documents/2019/01/0e6d5904-367d-0010-87a3-c30de2ffd8ff.html

spaceman01
3楼-- · 2020-08-20 20:49

嗨,Rashmi,

根据我在CDS视图上的经验,如果您加入4个表,将不会有任何性能问题。在我的项目中,我们在单个CDS视图中使用了20多个表。 由于要引用的基表中有大量数据,因此会出现性能问题。 下面是设计CDS视图时可以遵循的一些实践。

1)始终尝试使用输入参数来限制基本表中的数据(例如:我们有ACDOCA表并且数量巨大,因此请尝试使用输入参数来限制特定年份/季度/期间的数据)

2)每当需要主数据时,请始终尝试使用关联。 在性能方面,它们会提供更好的结果,因为联接条件仅按需执行,即联接仅在输出中请求归档时才运行

3)使用where条件限制数据过滤基表中的数据

4)如果逻辑太复杂,则可以使用多层(例如:您需要创建多个表函数来满足业务需求,并在CDS视图中调用这些表函数)

一周热门 更多>