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_diagnostic_blocking 表

sa_diagnostic_blocking 表属于 dbo 用户,它用于记录阻塞事件。如果启用了记录阻塞事件,则每当在尝试访问资源时连接受到阻塞,就会在此表中插入一行。通常情况下,该操作是由表锁或行锁所引起的。大量的阻塞可能表明您应当检查应用程序中的并发操作,以减少表和行的争用问题。

此表有两个版本:sa_diagnostic_blocking 和 sa_tmp_diagnostic_blocking。

列名 列类型 列约束 表约束
logging_session_id UNSIGNED INT NOT NULL

外键引用 sa_diagnostic_cursor。

外键引用 sa_diagnostic_request。

lock_id UNSIGNED BIGINT NOT NULL
request_id UNSIGNED BIGINT

外键引用 sa_diagnostic_request。

cursor_id UNSIGNED BIGINT

外键引用 sa_diagnostic_cursor。

original_table_object_id UNSIGNED BIGINT
rowid UNSIGNED BIGINT
block_time TIMESTAMP NOT NULL
unblock_time TIMESTAMP
blocked_by UNSIGNED INT NOT NULL

logging_session_id   唯一地标识记录会话(在此会话期间收集诊断信息)的编号。

lock_id   当行锁或表锁导致阻塞时导致产生阻塞的那个锁的 ID,否则为 NULL。

request_id   当阻塞不是因游标而引起时,为被阻塞请求的 ID,否则为 NULL。此值与 sa_diagnostic_request 中指定给请求的 ID 相对应。

cursor_id   当阻塞是因为游标而引起时,为游标的 ID,否则为 NULL。此值与 sa_diagnostic_cursor 中指定给游标的 ID 相对应。

original_table_object_id   当阻塞是因为表锁而引起时,为发生阻塞的表的 ID,否则为 NULL。

rowid   当阻塞是因为行锁而引起时,为发生阻塞的行的 ID,否则为 NULL。

block_time   阻塞的发生时间。

unblock_time   阻塞的结束时间。

blocked_by   连接的 ID,该连接包含引发阻塞的锁。

另请参见