删除大表的整表内容时,云服务器推荐,可以使用delete,也可以使用truncate。
删除需要很长时间,购返利,但是删除和插入一个事务中的数据对其他用户的影响最小。truncate表非常快,但是有一个隐式提交。
至少,我是这么想的。但实际上,truncate是可回滚的:
我注意到,返利,263云通信企业版,在编写一个过程时,它确实会截断数据,然后使用SDI流程图重新加载数据。加载失败是因为一个锁,我一开始无法解释这个问题。
一个简单的例子来证明这一点:
过程不会成功,因为truncate table语句在过程会话中创建了一个排他锁,自治事务在另一个会话中运行,农业物联网,但无法插入记录,因为截断表。流程图只是在另一个事务中运行的insert语句的另一个例子,因此面临同样的问题。
在truncate表之后的提交显然解决了这个问题。
我没有想到一个过程在默认情况下会关闭这个autocommit ddl标志。在Hana 2.0 SP4中对此进行了解释,create procedure语句获得了一个新设置
请参阅help.sap.com帮助详细信息
为了确保正确,我在过程中添加了一个输出表变量,并返回了当前会话的m\u session\u上下文。实际上,当在过程内部检查auto\u commit\u dll时,甚至在Hana 1.0 SP12中也设置为off。
很有趣,不是吗?
本文地址: /ziyuan/64505.html
版权声明:本文发布于收集站云 内容均来源于互联网 如有侵权联系删除