返回所有连接的请求计时信息的汇总(前提是数据库服务器启用了请求计时记录)。
sa_performance_diagnostics( )
列名 | 数据类型 | 说明 |
---|---|---|
Number | INT |
返回连接的 ID 编号。 |
Name | VARCHAR(255) |
返回当前连接的名称。 可使用 ConnectionName (CON) 连接参数来指定连接的名称。请参见ConnectionName (CON) 连接参数。 以下名称用于数据库服务器建立的临时连接:
请参见临时连接。 |
Userid | VARCHAR(255) |
返回连接的用户 ID。 |
DBNumber | INT |
返回数据库的 ID 编号。 |
LoginTime | TIMESTAMP |
返回建立连接的日期和时间。 |
TransactionStartTime | TIMESTAMP |
返回一个字符串,其中包含在 COMMIT 或 ROLLBACK 之后首次修改数据库的时间;如果自上次执行 COMMIT 或 ROLLBACK 以来未对数据库进行过任何修改,则返回一个空字符串。 |
LastReqTime | TIMESTAMP |
返回指定连接的最后一个请求开始的时间。此属性可以为内部连接(如事件)返回空字符串。 |
ReqType | VARCHAR(255) |
返回上次请求的类型。如果连接已由连接池进行了高速缓存,则其 ReqType 值为 CONNECT_POOL_CACHE。 |
ReqStatus | VARCHAR(255) |
返回请求状态。它可以是以下各值之一:
仅当已使用 -zt 服务器选项为数据库服务器开启了请求计时信息记录功能时,才会返回标有星号 (*) 的值。如果未记录请求计时信息(缺省设置),则会将这些值报告为 Executing。 |
ReqTimeUnscheduled | DOUBLE |
返回未调度的时间长度;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqTimeActive | DOUBLE |
返回处理请求所用的时间长度;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqTimeBlockIO | DOUBLE |
返回等待 I/O 完成所用的时间长度;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqTimeBlockLock | DOUBLE |
返回等待锁所用的时间长度;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqTimeBlockContention | DOUBLE |
返回等待原子访问所用的时间长度;如果将 RequestTiming 服务器属性设置为 Off,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqCountUnscheduled | INT |
返回连接等待调度的次数;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqCountActive | INT |
返回已处理的请求数;如果将 RequestTiming 服务器属性设置为 Off,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqCountBlockIO | INT |
返回连接等待 I/O 完成的次数;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqCountBlockLock | INT |
返回连接等待锁的次数;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
ReqCountBlockContention | INT |
返回连接等待原子访问的次数;如果未指定 -zt 选项,则返回 NULL。请参见-zt dbeng12/dbsrv12 服务器选项。 |
LastIdle | INT |
返回请求间隔时间。 |
BlockedOn | INT |
如果当前连接未被阻塞,则返回零;如果当前连接被阻塞,则返回由于锁定冲突而阻塞连接的连接号。 |
UncommitOp | INT |
返回未提交的操作数。 |
CurrentProcedure | VARCHAR(255) |
返回连接当前正在执行的过程的名称。如果该连接正在执行嵌套过程调用,则该名称为当前过程的名称。如果未在执行任何过程,则返回一个空字符串。 |
EventName | VARCHAR(255) |
如果连接正在运行事件处理程序,则返回相关事件的名称。否则,返回一个空字符串。 |
CurrentLineNumber | INT |
返回连接正在执行的过程或复合语句的当前行号。可使用 CurrentProcedure 属性标识该过程。如果该行是来自客户端的复合语句的一部分,则返回一个空字符串。 |
LastStatement | LONG VARCHAR |
返回最近为当前连接准备的 SQL 语句。 当准备了语句时,将会设置 LastStatement 值;当删除了语句时,将会清除该值。每个连接仅会记忆一个语句字符串。 如果 sa_conn_activity 对某个连接报告了一个非空值,它很可能为该连接当前执行的语句。假如该语句已完成,则很有可能已丢弃了它并清除了属性值。如果某个应用程序准备了多条语句并保有其语句句柄,则 LastStatement 值不反映连接当前进行的操作。 如果启用客户端语句高速缓存并且重用了某个高速缓存的语句,则此属性返回空字符串。 |
LastPlanText | LONG VARCHAR |
返回在连接上执行的最后一个查询的长文本计划。通过设置 sa_server_option 系统过程的 RememberLastPlan 选项或使用 -zp 服务器选项控制对最后一个计划的记忆情况。请参见-zp dbeng12/dbsrv12 服务器选项。 |
AppInfo | LONG VARCHAR |
返回有关建立连接的客户端的信息。对于 HTTP 连接,这包括有关浏览器的信息。对于使用较旧版本 jConnect 或 Sybase Open Client 的连接,信息可能不完整。 API 值可为 DBLIB、ODBC、OLEDB、ADO.NET、iAnywhereJDBC、PHP、PerlDBD 或 DBEXPRESS。 有关其它类型连接返回值的详细信息,请参见AppInfo (APP) 连接参数。 |
LockCount | INT |
返回连接所持有的锁的个数。 |
SnapshotCount | INT |
返回与连接相关联的快照数。 |
sa_performance_diagnostics 系统过程返回一个包含一组请求计时属性和统计信息的结果集(前提是已通知服务器搜集这些信息)。在调用 sa_performance_diagnostics 之前,必须在数据库服务器上打开请求计时信息的记录。要达到此目的,可在启动数据库服务器时指定 -zt 选项,也可执行以下内容:
CALL sa_server_option( 'RequestTiming','ON' ); |
DBA 特权
无
可以执行以下查询以标识花费长时间等待数据库服务器请求完成的连接。
SELECT Number, Name, CAST( DATEDIFF( second, LoginTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS T, ReqTimeActive / T AS PercentActive FROM dbo.sa_performance_diagnostics() WHERE PercentActive > 10.0 ORDER BY PercentActive DESC; |
以下示例查找当前正在执行且执行时间已超过 60 秒的所有请求:
SELECT Number, Name, CAST( DATEDIFF( second, LastReqTime, CURRENT TIMESTAMP ) AS DOUBLE ) AS ReqTime FROM dbo.sa_performance_diagnostics() WHERE ReqStatus <> 'IDLE' AND ReqTime > 60.0 ORDER BY ReqTime DESC; |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |