SAP HANA-开始传输、回滚、提交

SAP HANA-开始传输、回滚、提交,sap,hana,Sap,Hana,我刚刚开始使用SAP HANA。我来自SQL Server环境。 SAP HANA中是否有等效的BEGIN TRAN 看起来有命令Rollback和Commit,我不知道它什么时候起作用,什么时候自动提交。 我想知道是否有类似于BEGIN-TRAN的东西,我可以指定我不希望下面的更新在SAP HANA(以及大多数其他DBMS)中自动提交。所有命令都在隐式事务上下文中执行。无需明确声明您现在就要开始事务 使用HANA Studio时,需要注意的一点是,默认会话设置是使用AUTOCOMMIT,这意味

我刚刚开始使用SAP HANA。我来自SQL Server环境。 SAP HANA中是否有等效的
BEGIN TRAN
看起来有命令
Rollback
Commit
,我不知道它什么时候起作用,什么时候自动提交。
我想知道是否有类似于
BEGIN-TRAN
的东西,我可以指定我不希望下面的更新在SAP HANA(以及大多数其他DBMS)中自动提交。所有命令都在隐式事务上下文中执行。无需明确声明您现在就要开始事务

使用HANA Studio时,需要注意的一点是,默认会话设置是使用
AUTOCOMMIT
,这意味着每个命令都将在其自己的事务中执行,并立即执行
COMMIT
ted。 为了将命令捆绑到一个事务中,您必须将会话参数更改为
AUTOCOMMIT
=
false

除此之外,还可以选择在
自治事务中运行代码,这基本上为您的过程提供了自己的独立事务

SAP HANA没有提供(直到HANA 2 SP02)的是“子事务”或“本地事务”-这是MS SQL Server中的
BEGIN TRAN
所做的-您可以嵌套、提交或回滚

当然,这是有文档记录的,因此您可能希望熟悉事务概念

一般性说明:在存储过程中进行事务管理通常指向使用显式中间结果集(例如临时表)对数据进行“逐步”处理。这是一种非常昂贵的方法,应该被HANA SQL脚本中更灵活的“数据流”方法所取代。而不是在临时文件中插入/更新。在表中,选择的结果只是分配给变量。SQL脚本编译器在执行时会找出最终(可传递的)数据转换的样子,删减未使用的变量和处理步骤,在可能的情况下并行化
SELECT
s,并以更快和/或更少的资源使用率提供相同的输出

我想说的基本上是:当直接从MS SQL Server移植代码时,请注意在SAP HANA中可能有更好的实现方法


一般备注II:显然这是我的观点,但我发现使用存储过程时子事务相当混乱。在不了解过程调用树的所有子事务逻辑的情况下,客户机应用程序将失去对事务处理的控制。突然之间,客户端认为尚未提交的事务已提交或回滚,而客户端应用程序没有任何指示。对我来说,这是一个不一致的配方,如果可能的话,应该避免。

Thx分享这个有帮助。但是:事务范围究竟是什么?它是否在存储过程(以及所有被调用的过程)中?那么XSJS的作用域是如何定义的呢?在研究我自己的问题时,我在这里提出了这个问题:任何帮助都将不胜感激。非常感谢。