点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们! 我有一个关于提交工作...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们! 我有一个关于提交工作...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们!
我有一个关于"提交工作"的问题。
如果在"提交工作"之前有很多插入到表的记录,为稳定过程,最好将插入和"提交工作"分开吗?
我担心的是,由于内存错误或类似原因,在"提交工作"期间会发生短暂转储。
在我的环境中,我可以插入2,500,000条记录,并在HANA的ABAP上提交它们。
如果不稳定,我将循环该过程并将其划分。
我看到了一些有关Oracle的讨论。
他们表示,由于Oracle的UNDO区域短缺,这可能会不稳定。
但是HANA基本上在服务器上有很大的内存,我不知道HANA上ABAP的最佳实践。
https://archive.sap.com/discussions/thread/1103591
https://archive.sap.com/discussions/thread/1290462
此致
Yohei
您的"不稳定"概念很奇怪。 这种措词的选择意味着ABAP堆栈使用的DBMS的事务处理有问题。
这很可能不是这种情况。 相反,这是正常且正确的行为。 但是,没有一个受支持的DBMS提供独立于事务量的事务管理。 带有MVCC的系统必须以某种方式保持原始和更改的数据版本可用。 Oracle使用存储在磁盘上的UNDO表空间来执行此操作,而SAP HANA使用内存中的撤消文件。
如果这些存储工具已满,则事务将被任一DBMS中止,因为无法再保证成功处理 。
当然,这意味着需要正确设置DBMS的大小并对其进行配置以应对大量事务。 您可以同时使用Oracle和SAP HANA。
与其害怕"不稳定"的功能,不去研究十多年前已经结束的讨论,不如了解ABAP事务处理和DB事务处理如何结合在一起。
是否可以主要拆分一个事务的问题取决于您的数据有效性规则所允许的范围。 如果您是 如果将其加载到一个暂存区域中,则可能非常好,甚至有利于在多个(可能是并行)事务中覆盖工作负载。 另一方面,如果数据只能整体上正确使用,则允许提交中间不一致的状态会带来很多其他挑战,因为您的应用程序代码必须处理这些问题。
关于您的最后一条评论:Oracle允许自动扩展UNDO表空间,这可以避免由于缺少UNDO存储容量而中止事务。 一旦所有内存资源用完,SAP HANA无法扩展服务器RAM或开始分页到磁盘。
一周热门 更多>