ITPub博客

首页 > 应用开发 > IT综合 > S/4 HANA 中的数据库锁策略

S/4 HANA 中的数据库锁策略

原创 IT综合 作者:SAPmatinal 时间:2020-02-13 13:57:13 0 删除 编辑

S4 中的新的 MM 数据模型以及 HANA 的 Insert-only 特性允许物料凭证的并行处理, 提高了相关的吞吐量.  由此, 数据库锁的应用情况也发生了变化.  下文将介绍这些变化(基于 S4 1610).

Key figure 模型和 Account 模型

在 SAP S/4 HANA, on-premise edition 1610 中, 物料估价不再需要排它锁(exclusive locking), 这包含所有价格控制为 "移动平均价" 的和所有特殊库存类型的物料, 因为 HANA 是一个 Insert-only 数据库, 因此它允许物料凭证的并行处理.

因为在 S/4HANA OP1610 和 CE1608 中, 新的 MM-IM 数据模型将旧的 key figure 模型变为了 account 模型(还添加了 53 个帮助快速计算 / 统计的附加列), 这允许更细粒度的延迟数量锁定.

下面就是 Key figure 模型和 Account 模型的例子,

Key figure 模型:

Account 模型

对于 Key figure 模型模型而言, 必须在物料和工厂级别上加锁.  但是通过 Account 模型, 可以在物料, 工厂, 存储位置, 存储标识, 特殊存储标识级别加锁(原则上可以在新模型中任何定义了库存的级别上加锁).  因此, 即便是在过去很可能发生锁碰撞的情况下, 现在也能并行处理了.

移动平均价的锁

当货物移动改变了库存价值 (SALK3) 和已估计库存 (LBKUM) 的时候, 移动平均价必须据此调整, 这会产生一个 V1 级别的更新, 并且在更新结束前一直需要一个排它锁.  数量 / 价值的变化主要来源于货物移动带来的外部值(比如, 来自于采购订单).  然而, 如果变化的来源仅仅是舍入差异, 移动平均价将不会再调整.

创建批次时的锁(分割评估)

如果创建了物料主数据或者由一个货物移动带来改变时, 还是需要排它锁的.  如果使用了分割评估, 且必须创建新的批次的话, 货物移动会创建物料主数据.

对不允许负库存的工厂的延迟共享锁

S/4 HANA OP1610 和 CE1608 引入了一个新的增加吞吐量的选项.  这个选项可以在配置中设定, 对延迟锁策略(late lock strategy), 不允许再使用排它锁, 而是使用延迟共享锁(late shared locks), 这使得物料凭证的并行处理成为了真正的现实.

库存检查在这种情况下依然是可行的, 因为所有的处理进程都会把他们的提取发送到锁服务器, 此时, 锁服务器将成为库存变更的第二存储(第一存储是数据库), 数据的计算会从第一和第二存储进行.

批次主数据变更时的锁

从 S/4 HANA OP1610 和 CE1608 开始, 为了物料凭证过账时的碰撞率, 对于批次物料行项目而言, 批次锁只会在批次主数据变更时存在, 例如生产日期或 best before date 变更, 且与数据库中现有值不同时.

对 On-the-fly calculations 的优化

由于 on-the-fly calculation, 聚合数量变化会存储到混合和聚合表中, 成为实际库存数据.  这使得对这些表的读访问要比 Suite on HANA 慢.

为了将 on-the-fly calculation 的劣势转变为优势, S/4 HANA OP1610 和 CE1608 会引入以下特性:

在预读取阶段, 只有物料主数据会被读取到内部缓存中, 这是通过纯物料主数据视图来从数据库中检索数据的.

在行项目处理中, 库存数量会从数据库的 Account 模型中读取, 并且这只会在库存减少, 且禁止负库存的情况下才会进行.

因此, 对于 S/4 HANA OP1610 和 CE1608 而言, 为延迟锁策略的进行的调整允许物料凭证处理的平行处理, 而从数据库读取库存数量的策略和库存检查的策略减少了单个物料凭证的处理时间.  总之, 相较于过去的 S/4 HANA OP1511 和 Suite on HANA, 新版本的系统减少了物料凭证的处理时间.

允许负库存的工厂的锁策略

在延迟锁策略下, 不再加任何锁.

不会再从数据库进行库存判断, 也不会再进行库存检查(在两种锁策略下都是).


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69901557/viewspace-2675436/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
公众号:matinal 熟悉java,JavaScript,Python,abap,sap业务的配置和开发,学习人工智能,机器学习,物联网,云平台等技术

注册时间:2018-12-04

  • 博文量
    72
  • 访问量
    47744