Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 系统对象 » 系统过程 » 按字母顺排序的系统过程列表

 

sa_conn_info 系统过程

报告连接属性信息。

语法
sa_conn_info( [ connidparm ] )
参数
  • connidparm   此可选 INTEGER 参数指定连接的 ID 号。

结果集
列名 数据类型 说明
Number INTEGER 连接的 ID 号。
Name VARCHAR(255) 连接的名称。
Userid VARCHAR(255) 连接的用户 ID。
DBNumber INTEGER 数据库的 ID 号。
LastReqTime VARCHAR(255) 指定连接的最后请求开始的时间。
ReqType VARCHAR(255) 上次请求类型的字符串。
CommLink VARCHAR(255) 连接的通信链接。这是 SQL Anywhere 所支持的网络协议之一,或者对于相同计算机连接为 local。
NodeAddr VARCHAR(255) 客户端/服务器连接中客户端的地址。
ClientPort INTEGER 客户端应用程序进行 TCP/IP 通信的端口号。
ServerPort INTEGER 服务器进行 TCP/IP 通信的端口号。
BlockedOn INTEGER 如果没有阻塞当前连接,则该值为 0。如果阻塞了当前连接,则为由于锁定冲突而阻塞连接的连接数。
LockTable VARCHAR(255) 如果此连接当前正等待一个锁,LockTable 将成为与该锁相关联的表的名称。否则,LockTable 将是空字符串。
UncommitOps INTEGER 未提交操作的数量。
LockRowID UNSIGNED BIGINT 如果连接正在等待与特定行标识符相关联的锁,LockRowID 会包含此行标识符。如果连接未等待与行相关联的锁(即连接未等待锁或者它所等待的锁没有相关联的行),则 LockRowID 为 NULL。
LockIndexID INTEGER 如果连接正在等待与特定索引相关联的锁,则 LockIndexID 会包含该索引的标识符(如果该锁与 LockTable 中表上的所有索引相关联,则会包含值 -1)。如果连接未等待与索引相关联的锁(即连接未等待锁或者它所等待的锁没有相关联的索引),则 LockIndexID 为 NULL。
注释

如果指定连接 ID 号,则 sa_conn_info 系统过程为提供的连接返回一个包含连接属性的结果集。如果没有提供 connidparm,则此系统过程返回服务器上数据库的所有当前连接的信息。如果 connidparm 小于零,则返回当前连接的选项值。

当发生阻塞时,使用此过程所返回的 BlockedOn 值可以检查哪些用户被阻塞以及是谁阻塞的。sa_locks 系统过程可用于显示阻塞的连接所持有的锁。

有关基于任意这些属性的详细信息,可执行与以下类似的内容:

SELECT *, DB_NAME( DBNumber ), 
   CONNECTION_PROPERTY( 'LastStatement', Number ) 
   FROM sa_conn_info( );

LockRowID 的值可用于在 sa_locks 过程的输出中查找锁。

LockIndexID 的值可用于在 sa_locks 过程的输出中查找锁。此外,LockIndexID 的值对应于 ISYSIDX 系统表的主键,可使用 SYSIDX 系统视图查看此系统表。

每个锁都具有关联的表,因此,LockTable 的值可用于明确地确定某连接是否正在等待锁。

权限

副作用

None

另请参见
示例

以下示例使用 sa_conn_info 系统过程为连接到服务器的所有连接返回一个汇总连接属性的结果集。

CALL sa_conn_info( );
Number Name Userid DBNumber ...
79 DBA 0 ...
46 Sybase Central 1 DBA 0 ...
... ... ... ... ...