S/4 HANA 中的資料庫鎖策略
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP推全新管理軟體版本S/4 資料庫僅支援HANA資料庫
- SAP S/4 HANA OverviewView
- 關於 SAP HANA 資料庫的死鎖問題(deadlock)資料庫
- 資料庫中的共享鎖與排他鎖資料庫
- SAP S4HANA BP初探
- SAP S/4 HANA On-Premise implementationREM
- 使用 csv 匯入的方式在 SAP S/4HANA 裡建立 employee 資料
- 使用函式BAPISDORDER_GETDETAILEDLIST讀取S/4HANA中Sales Order行專案資料函式APIAI
- SAP S4 HANA - What is it all about?
- ORACLE 資料庫中的鎖機制Oracle資料庫
- 資料庫中的悲觀鎖和樂觀鎖資料庫
- SAP ECC 和 S4HANA Material 物料庫存管理的模型比較模型
- 一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知
- SAP S4HANA 根據PO號碼得到各個ITEM的Conditions資料
- SAP S/4 HANA 與R3(ECC) 的區別
- SAP S4HANA TR傳輸之操作
- S/4 HANA成本元件啟用順序元件
- SAP S/4HANA OData Mock Service 介紹Mock
- SAP S/4 HANA 1809簡介
- SAP S/4 HANA FINANCE New Transaction CodesNaN
- SAP S/4 HANA - Simple, Scalable, Sustainable and Smart!AI
- Deliver projects in 100% of the time with SAP S/4 HANAProject
- 打通C/4HANA和S/4HANA的一個原型開發:智慧服務創新案例原型
- oracle 資料庫的鎖Oracle資料庫
- 【資料庫——鎖】資料庫
- Java中的樂觀鎖——無鎖策略Java
- (資料庫十)資料庫中的鎖機制以及死鎖產生的原因及解決辦法資料庫
- SAP S4/HANA系統裡的客供件管理
- S/4HANA服務訂單Service Order的批量建立
- 使用BAPISDORDER_GETDETAILEDLIST建立S/4HANA的Outbound DeliveryAPIAI
- 使用ABAP程式碼建立S/4HANA裡的Sales Order
- SAP S/4HANA key user tool extensibility原理
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- How SAP S/4 HANA Finance improves your Profitability Management?NaN
- SAP S/4HANA FINANCE New Transaction CodesNaN
- SAP ECC,SAP HANA和SAP S/4HANA之間有什麼區別?
- C#通過ODBC查詢HANA資料庫資料C#資料庫
- 使用 SSL 加密的 JDBC 連線 SAP HANA 資料庫加密JDBC資料庫