关于sap:什么是-SAP-CDS-view-的-join-on-demand-技术

52次阅读

共计 1432 个字符,预计需要花费 4 分钟才能阅读完成。

SAP CDS view 里借助 path expression 技术,咱们能够实现 join on demand 的场景。

如下图所示:

Join on demand是 SAP CDS (Core Data Services)视图的一个重要个性,它容许您在 CDS 视图中实现 提早连贯,从而优化查问性能。通过在须要时执行连贯操作,而不是在每次查问时都执行连贯,能够缩小数据库的累赘,进步查问性能。

在 SAP CDS 视图中,通常会波及到多个实体(表)之间的连贯操作,例如 INNER JOIN、LEFT OUTER JOIN 等。在传统的连贯形式中,连贯操作会在查问开始时立刻执行,这可能会导致不必要的开销,特地是在某些查问中可能并不需要连贯的状况下。

应用 Join on demand 个性,能够将连贯操作推延到理论须要时再执行。这意味着如果您的查问不须要连贯的数据,连贯操作就不会产生,从而进步了查问的效率。

以下是一个简略的示例,演示了如何在 SAP CDS 视图中应用Join on demand

假如咱们有两个实体(表):SalesOrderCustomer。咱们心愿创立一个 CDS 视图,显示销售订单信息及其关联的客户信息。咱们能够应用Join on demand 来实现这一点。

首先,定义 SalesOrder 实体:

entity SalesOrder {
  key SalesOrderID : UUID;
  CustomerID : UUID;
  OrderDate : Date;
  // ... other fields
};

而后,定义 Customer 实体:

entity Customer {
  key CustomerID : UUID;
  Name : String;
  // ... other fields
};

接下来,创立一个 CDS 视图,应用 Join on demand 来连贯 SalesOrderCustomer

@AbapCatalog.sqlViewName: 'Z_CDS_SalesOrderWithCustomer'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Sales Order with Customer'
define view SalesOrderWithCustomer as select from SalesOrder
  association [0..1] to Customer as _Customer on $projection.CustomerID = _Customer.CustomerID
{
  key SalesOrder.SalesOrderID,
  SalesOrder.OrderDate,
  _Customer.Name as CustomerName
};

在下面的代码中,咱们应用了 association 来定义 SalesOrderCustomer之间的连贯。要害是,咱们在连贯上应用了 [0..1],这示意在查问时仅在须要时才执行连贯操作,而不是立刻执行。这就是Join on demand 的要害局部。

通过这种形式,当咱们查问 SalesOrderWithCustomer 视图时,连贯操作将会依据须要来执行,而不会在每次查问时都执行,从而进步了查问性能。

总而言之,Join on demand是 SAP CDS 视图中的一个重要个性,它通过提早连贯操作的执行来优化查问性能。这在解决大量数据和简单查问时特地有用,能够缩小数据库累赘,进步查问效率。通过正当应用Join on demand,您能够在 CDS 视图中实现更高效的数据模型和查问。

正文完
 0