SAP ERP Central Component(简称 ECC)库存治理数据模型,是建设在物料文档 (Material Document)、混合表(Hybrid Table)、聚合表(Aggregation Table) 和历史表 (History Table) 之上的。
这些表外面存储着局部冗余信息,用于向利用返回各种查问需要。
数据模型中的大量表,往往会导致库存相干报告运行时的低性能,因为为了显示物料库存值,必须从这些表里抽取各种维度的信息。另一方面,在解决旧数据模型的表时,UPDATE 操作导致的数据库锁有可能会与可能会与来自业务操作的另一把锁产生抵触。
为了解决 SAP ECC 的这些限度,在 S/4HANA 基于以下前提设计了一个新的简化数据模型(New Simplified Data Model,简称 NSDM):
- 所有库存数据将从存储在单个表中的重要文档信息计算,并且这张表仅反对 INSERT 操作治理。通过动静计算物料库存信息,解决了数据冗余问题。
- 应用繁多的物料文档表,解决了报告性能低下的问题。
- 因为只在物料文档表中应用 INSERT 操作,锁问题失去了解决。
S/4HANA 里具体的实现思路:
- 应用 CDS 视图模式的代理对象。用于动静计算库存数据,并连贯混合表中蕴含的主数据后果。
- 如果给定的混合表有一个调配给它的代理,该表的 SELECT 语句将在数据库接口层 (Database Interface Layer) 重定向到指定的 CDS 视图。
动静计算失去库存的值,很显然比间接从聚合表里获取曾经聚合好的数据要慢。从实践上说,库存值的计算性能与物料单据表中的记录数量成正比。为了解决这个性能问题,SAP S/4HANA 应用了作为 MATDOC 表子集的第二个表,即 MATDOC_EXTRACT。