如何确定被某个间谍阻止(直接和间接)的间谍数量

2020-09-21 14:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)考虑运行以下sql 用户1 ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


考虑运行以下sql

用户1

开始交易
 更新TABLE-A集... 

用户2

开始交易
 更新TABLE-B设置...
 更新TABLE-A集... 

用户3

开始交易
 更新TABLE-C设置...
 更新TABLE-A集... 

用户4

开始交易
 更新TABLE-D集...
 更新TABLE-C设置... 

因此,用户1直接阻止用户2和用户3,并间接阻止用户4(通过用户3)。 是否有一个查询将返回用户1的spid阻止的spid数量为3的计数? 我怀疑这是一种自我联结,这对我来说始终是个挑战。 理想情况下,我希望该查询能够在任何深度的间接阻止条件下工作。

我们正在使用ASE 15.7

谢谢。

3条回答
小灯塔
2020-09-21 14:14

MDA表monProcess具有SPID和BlockingSPID,

因此,两个选择的结合可以满足您的需求。

如果从BlockingSPID入围的SPID也可能具有非零/非空的BlockingSPID

表明阻止者在下一级别被进一步阻止。

您也可以在MDA表monLocks中查找,该表具有SPID,BlockedState和BlockedBy列来提供帮助。

我更喜欢monProcess,因为连接数量通常受到限制,

另一方面,锁有时可能会变成数百万个。

HTH

Avinash

PS

要获得稳定的图像,建议您将monProcess放入#temp表中,然后在该表上运行select。

一周热门 更多>