1. 程式人生 > 其它 >SAP ABAP CDS view Association 引入的緣由

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 的效能更優。