报告连接属性信息。
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 | ... |
... | ... | ... | ... | ... |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |