您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_iqtransaction 过程

显示事务和版本的相关信息。

语法

sp_iqtransaction

适用于

SAP IQ 服务器和 Multiplex

特权

您必须具有系统过程的 EXECUTE 特权。您还必须具有 MONITOR 系统特权。

注释

sp_iqtransaction 为 SAP IQ 事务管理器中的每个事务控制块返回一行。列 Name、Userid 和 ConnHandle 分别是连接属性 Name、Userid 和 Number。行按 TxnID 排序。

sp_iqtransaction 输出只包含具有进行中事务的那些连接。要包括所有连接,请使用 sp_iqconnection。

注意 尽管您可以使用 sp_iqtransaction 来标识阻止其他用户写入表的用户,但 sp_iqlocks 是实现此目的的更好选择。 列名说明Name应用程序的名称。Userid连接的用户 ID。TxnID此事务控制块的事务 ID。该事务 ID 在执行 begin transaction 时分配。它将出现在 .iqmsg 文件的 BeginTxn、CmtTxn 和 PostCmtTxn 消息中,并与打开数据库时所记录的 Txn ID Seq 相同。 CmtID提交事务时事务管理器分配的 ID。对于活动事务,CmtID 为零。VersionID对于 SAP IQ 服务器和 Multiplex 节点,值 0 表示事务未实现版本化,且尚未分配 VersionID。 对于 Multiplex 协调器,在事务建立表锁后分配 VersionID。Multiplex 辅助服务器自协调器接收 VersionID。VersionID 由 SAP IQ 内存中目录和 IQ 事务管理器在内部使用,以对 Multiplex 数据库中的所有节点唯一标识数据库版本。 状态事务控制块的状态。该变量反映内部 SAP IQ 实现的详细信息,将来可能会发生更改。当前,事务状态为 NONE、ACTIVE、ROLLING_BACK、ROLLED_BACK、COMMITTING、COMMITTED 和 APPLIED。 NONE、ROLLING_BACK、ROLLED_BACK、COMMITTING 和 APPLIED 是瞬时状态,寿命很短。 ACTIVE 指示事务处于活动状态。 COMMITTED 指示事务已完成并正在等待 APPLIED,此时,将对对于任何事务都不可见的版本执行垃圾回收。 一旦事务状态变为 ROLLED_BACK、COMMITTED 或 APPLIED,除了打开游标所持有的锁,该事务将不再拥有任何其它锁。 ConnHandle连接的 ID 号。IQConnID十位连接 ID,是 .iqmsg 文件中所有消息的一部分。它是一个单调递增整数,在服务器会话内是唯一的。 MainTableKBCr此事务创建的 IQ 存储空间的大小(以 KB 为单位)。MainTableKBDr此事务删除的 IQ 存储空间的大小(以 KB 为单位),但由于该空间在其它数据库版本或此事务的其它保存点仍可见,因此该空间仍位于磁盘存储中。TempTableKBCr此事务创建的用于存储 IQ 临时表数据的 IQ 临时存储空间的大小(以 KB 为单位)。TempTableKBDr此事务删除的 IQ 临时表空间的大小(以 KB 为单位),但由于该空间对 IQ 游标仍可见,或者归此事务的其它保存点所有,因此该空间仍位于磁盘的 IQ 临时存储库中。TempWorkSpaceKB对于 ACTIVE 事务,该事务此时使用的工作空间的快照,如排序、散列和临时位图。该数值因您运行 sp_iqtransaction 的时间而异。例如,查询引擎可能会在临时高速缓存中创建 60 MB,但很快释放其中的大部分空间,即使查询处理仍在继续也是如此。如果在查询完成后运行 sp_iqtransaction,该列显示要小得多的数值。当事务不再处于活动状态时,该列为零。 对于 ACTIVE 事务,该列与 sp_iqconnection 的 TempWorkSpaceKB 列相同。 TxnCreateTime事务的开始时间。所有 SAP IQ 事务都在活动连接建立后马上隐式开始或在前一事务提交或回退时隐式开始。CursorCount引用该事务控制块的打开的 SAP IQ 游标数。如果事务处于 ACTIVE 状态,则它指示事务中创建的打开的游标数。如果事务处于 COMMITTED 状态,则它指示引用该事务控制块拥有的数据库版本的 HOLD 游标数。SpCount事务控制块中存在的保存点结构数。保存点可以隐式创建和释放。因此,此数值不指示事务中用户创建的保存点的数量。SpNumber事务的活动保存点数。这是实现详细信息,因此可能不能反映用户创建的保存点。MPXServerName指示活动事务是否来自节点间通信 (INC) 连接。如果来自 INC 连接,则值是发起事务的 Multiplex 服务器的名称。如果不是来自 INC 连接,则为 NULL。如果事务不是活动的,则始终为 NULL。GlobalTxnID与当前事务关联的全局事务 ID,如果没有则为 0(零)。VersioningType事务的快照版本控制类型;表级(缺省值)或行级。行级快照版本控制 (RLV) 仅适用于启用 RLV 的表。一旦启动某个事务,该值便不能进行更改。Blocking指示连接阻塞是已启用 (True) 还是已禁用 (False)。可使用 BLOCKING 数据库选项设置连接阻塞。如果为 true,事务阻塞,即事务先等待解除冲突锁,然后尝试重试锁定请求。 BlockingTimeout指示事务等待清除锁定冲突的时间(毫秒)。可使用 BLOCKING_TIMEOUT 数据库选项设置超时阈值。值 0(缺省值)表示事务无限期等待。 

示例

示例 sp_iqtransaction 输出:

Name   Userid  TxnID  CmtID VersionID    State    ConnHandle  IQConnID

====== ====== ====== ====== ========= ========== =========== ========

red2 DBA 10058 10700 10058 Active 419740283 14

MainTableKBCr      MainTableKBDr    TempTableKBCr TempTableKBDr

============= ================== ================ =============

         0                  0            65824             0  

TempWorkSpaceKB TxnCreateTime               CursorCount SpCount SpNumber

==============  =======================     =========== ======= ========

       0    2013-03-26 13:17:27.612             1       3        2

MPXServerName  GlobalTxnID VersioningType Blocking BlockingTimeout

=============  =========== ============== ======== ===============

        (NULL)         0 Row-level True 0