onstat -g pqs 命令:打印所有 SQL 查询的运算符

可以使用 onstat –g pqs 命令显示当前正在运行的 SQL 查询中的使用的运算符的信息。

可以使用该命令对应用程序镜像故障排除、找到该查询所使用的运算符以及每个运算符返回行数及长度。 EXPLAIN 文件包含的信息显示此查询计划的概览,onstat –g pqs 命令显示该查询和查询计划的运行时的操作者。
语法:

可以指定以下之一的调用:

表 1. 每个 onstat -g pqs 命令调用的描述
调用 解释
onstat -g pqs 显示每个会话的一行摘要
onstat -g pqs sessionid 显示指定会话的信息

示例输出

以下示例显示了在不同会话中三个单独的 SQL 语句运行的结果。这些语句是:
select * from syscolumns;
          select * from systables a, systables b;
          update t1 set rowsize = rowsize +100;

图: onstat –g pqs 命令输出

            Query Operators:
            addr     ses-id   opname    phase   rows   time           in1         in2    stmt-type
            ae50b3a  23       scan      open    0      00:00.00         0           0    SELECT
            af269d0   5       nljoin    next    224717 00:01.82   af26a90     aeb4478    SELECT
            af26a90   5       scan      next    472    00:00.20         0           0    SELECT
            aeb4478   5       scan      next    50     00:01.63         0           0    SELECT
            ad3c530  26       scan      open    0      00:00.00         0           0    UPDATE (all)
          

输出描述

addr
运算符在内存中的地址。可以使用该地址跟踪属于每个 JOINT 运算符的 SCAN 运算符
ses-id
运行 SQL 语句的会话的 ID
opname
运算符名称
phase
已使用的运算符的阶段,例如 OPEN 、NEXT 、CLOSE
rows
该运算符执行的行数
time
执行该运算符的时间量。以毫秒显示。 01:20.10 是 1 分钟 20 秒 10 毫秒
in1
该连接中的第一个运算符(outer)
in2
该连接中的第二个运算符(inner)
stmt-type
SQL 语句的类型,例如 SELECT 、UPDATE 、DELETE