微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAP ABAP CDS view Association 引入的缘由

ABAP CDS view 支持三种 join 方式:

  • Inner Join
  • Left Outer join
  • Right outer join

我们使用 ABAP Development Tool 的 CDS view 向导创建一个 CDS view:

向导里包含的 $ 和大括号就是占位符,需要开发人员自己指定:

我们把占位符替换成实际的 SFLIGHT 和 SPFLI.

激活 CDS view,可以预览数据了:

我们看到了 CDS 视图如何在 Join 的帮助下从 2 个表中获取数据。但是让我们想一想,为什么要创建这些 CDS 视图? 背后的目的是什么?

CDS 视图不会被业务用户直接访问,而是会被 ABAP 程序、Fiori 应用程序或 BI 前端工具使用。假设在 5 个不同的表上使用 JOINS 创建了 CDS 视图,则每次触发此 CDS 视图时都会执行此 JOIN 条件。即使业务用户只查看 2 个表中的字段,但 CDS 视图将首先运行所有 5 个表的连接条件,并且用户查看的字段数量无关紧要。 这种基于 JOIN 的 sql 概念,在用户仅查看部分数据的情况下,会导致从 CDS 视图中提取数据的性能延迟。 为了克服这个问题,SAP 对这种获取数据的 sql 方式进行了增强,引入了 JOIN 的概念。

使用 association,只有在用户想要查看数据时才会获取数据。让我们看看它是如何工作的。

association 也是一种 join,可以根据 join 条件从多个表中获取数据,但这些是按需连接,即它们只会在用户访问所需数据时触发。 例如 CDS 视图配置了 4 个关联,而用户获取 2 个表的数据,其他 2 个表上的关联将不会被触发,系统将快速返回结果。因此同常规 sql JOINS 相比,association 的性能更优。

原文地址:https://cloud.tencent.com/developer/article/2190368

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐