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 的性能更优。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...