SAP Technical

SAP HANA中表锁分析

2018-11-21  本文已影响147人  df6e4e8a0635

更多内容请关注公众号:SAP Technical

写在前面

我们知道在SAP ECC里使用TCODE: SM12来查看表的锁定情况。通过SM12在系统中找到相关的记录。当然删除相关的记录可以解决问题,但这里需要提醒大家的是,这种记录不可以随便删除。如果别人正在处理相关记录而被你删除了,就会造成数据的错误和丢失。

  遇到这种情况,我们首先要判断被LOCK的记录是否正被处理,如果没有就可以直接删除;如果有那只能等相关操作完成自动释放,或者通知相关使用人退出相关操作,也可以释放。

那么,在SAP HANA中怎么查看表锁的情况呢。我这里通过HANA Studio来查看表的锁定情况。当然前提条件是要使用具有CATALOG READ的权限的用户来查看。

实现过程

首先,我们来准备一下前提条件。

1,准备一个拥有CATALOG READ权限的用户,登录到HANA Studio。

2,登录到HANA系统并打开管理控制台。

3,选择“System Information”页签, 然后找到“Table Locks”来查看锁。

当然我们也可以通过执行“SYS.M_TABLE_LOCKS”视图来查看。如下图所示:

锁定模式分析:

●锁定模式:独占(EXCLUSIVE)

1、可以通过显式获取LOCK TABLE命令或隐式获取DDL命令。

2、持有锁的事务可以读取和写入表。

3、只有持有该锁的事务才能访问该表。

4、锁定EXCLUSIVE锁时锁定其他事务对表的锁定请求。

5、数据库发布在事务结束时获取锁。

●锁定模式:有目的的独占(INTENTIONAL EXCLUSIVE)

1、通过DML隐式获取。

2、多笔交易可以获得INTENTIONAL EXCLUSIVE锁。

3、在保留INTENTIONAL EXCLUSIVE锁的情况下,其他事务的表的异常锁请求被阻止。

4、数据库发布在事务结束时获取锁。

上一篇下一篇

猜你喜欢

热点阅读