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
:
假如咱们有两个实体(表):SalesOrder
和 Customer
。咱们心愿创立一个 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
来连贯 SalesOrder
和Customer
:
@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
来定义 SalesOrder
和Customer
之间的连贯。要害是,咱们在连贯上应用了 [0..1]
,这示意在查问时仅在须要时才执行连贯操作,而不是立刻执行。这就是Join on demand
的要害局部。
通过这种形式,当咱们查问 SalesOrderWithCustomer
视图时,连贯操作将会依据须要来执行,而不会在每次查问时都执行,从而进步了查问性能。
总而言之,Join on demand
是 SAP CDS 视图中的一个重要个性,它通过提早连贯操作的执行来优化查问性能。这在解决大量数据和简单查问时特地有用,能够缩小数据库累赘,进步查问效率。通过正当应用Join on demand
,您能够在 CDS 视图中实现更高效的数据模型和查问。