TDSQL Boundless SHOW PROCESSLIST

SHOW PROCESSLIST 用于查看当前正在执行的会话列表,返回内容包括会话 ID、执行用户、来源地址、执行语句和执行状态等信息,常用于定位耗时查询、连接异常等问题。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、功能描述

TDSQL Boundless 是分布式数据库,默认情况下 SHOW PROCESSLIST 会自动汇聚展示集群内所有计算节点(CN)的会话,也可以通过 LOCAL 关键字仅查看当前连接节点的会话。这一点与仅能查看单机会话的社区 MySQL 不同。

二、语法

SHOW [GLOBAL | LOCAL] [FULL | DETAIL] PROCESSLIST;

三、示例一:查看集群所有节点的会话列表

不指定关键字时,默认等价于 SHOW GLOBAL PROCESSLIST,返回集群内所有计算节点的会话,Info 字段超过100个字符会被截断。

tdsql > SHOW PROCESSLIST;+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+| Id | Tid | Mem | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+| 3 | 47234 | 245760 | root | 10.0.0.5:52344 | test | Query | 0 | executing | SELECT * FROM t1 WHERE id=1 | 12 | 0 | 0 || 5 | 47235 | 131072 | root | 10.0.0.5:52350 | NULL | Sleep | 120 | NULL | NULL | 0 | 0 | 0 |+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+2 rows in set (0.01 sec)

四、示例二:查看完整语句及会话所在节点

指定 FULL 关键字后,Info 字段不再截断,且在默认的 GLOBAL 模式下会额外返回 Endpoint 列,标识每个会话所在的节点地址,便于定位具体是哪个节点上的会话。

tdsql > SHOW FULL PROCESSLIST;+—-+——-+——–+——+—————-+——+———+——+———————–+——————————————————————–+———+———–+—————+—————-+| Id | Tid | Mem | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined | Endpoint |+—-+——-+——–+——+—————-+——+———+——+———————–+——————————————————————–+———+———–+—————+—————-+| 3 | 47234 | 245760 | root | 10.0.0.5:52344 | test | Query | 0 | executing | SELECT * FROM t1 WHERE id=1 | 12 | 0 | 0 | 10.0.0.11:3306 || 21 | 58231 | 262144 | root | 10.0.0.6:41022 | test | Query | 3 | Searching range cache | SELECT COUNT(*) FROM t2 WHERE create_time > NOW() – INTERVAL 1 DAY | 3200 | 0 | 0 | 10.0.0.12:3306 |+—-+——-+——–+——+—————-+——+———+——+———————–+——————————————————————–+———+———–+—————+—————-+2 rows in set (0.00 sec)

以上示例中,Searching range cache 是 TDSQL Boundless 新增的分布式执行状态,表示会话正在查找 range cache,便于将该阶段的耗时从等待响应耗时中独立出来定位。

五、示例三:仅查看当前连接节点的会话列表

指定 LOCAL 关键字后,只返回当前连接节点自身的会话,不会汇聚其他节点的会话,也不会返回 Endpoint 列。

tdsql > SHOW LOCAL PROCESSLIST;+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+| Id | Tid | Mem | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+| 3 | 47234 | 245760 | root | 10.0.0.5:52344 | test | Query | 0 | executing | SELECT * FROM t1 WHERE id=1 | 12 | 0 | 0 |+—-+——-+——–+——+—————-+——+———+——+———–+—————————–+———+———–+—————+1 row in set (0.00 sec)

六、参数说明

SHOW PROCESSLIST 支持的关键字:

·GLOBAL:(默认)汇聚展示集群内所有计算节点的会话。

·LOCAL:仅展示当前连接节点的会话。

·FULL:显示完整的 Info 字段内容,不做截断。在默认的 GLOBAL 模式下,指定 FULL 时还会额外返回 Endpoint 列。

·DETAIL:在返回结果中追加同步/异步 IO、Redo/Undo/Binlog 日志量、CPU 耗时、内存占用、锁等待等扩展统计列,便于精细化排查性能问题。

不指定 FULL 或 DETAIL 时,Info 字段最长显示100个字符,超出部分会被截断。

返回结果字段说明:

字段 说明
Id 会话 ID。
Tid 会话对应的操作系统线程 ID。
Mem 会话当前占用的内存大小,单位为字节。
User 执行该会话的用户名。
Host 客户端连接来源的地址和端口。
db 会话当前所在的数据库,未选择数据库时为 NULL。
Command 会话当前执行的命令类型,例如 Query(正在执行语句)、Sleep(空闲等待)、Connect(复制连接)等。
Time 会话处于当前状态的持续时间,单位为秒。
State 会话当前所处的执行阶段,为空表示当前无执行阶段。
Info 会话正在执行的语句文本,为空表示当前无执行语句。
Time_ms 会话处于当前状态的持续时间,单位为毫秒。
Rows_sent 该语句已返回的行数。
Rows_examined 该语句已扫描的行数。
Endpoint 会话所在节点的地址,仅在默认的 GLOBAL 模式下指定 FULL 时返回。

七、注意事项

·执行 SHOW PROCESSLIST 需要具备 PROCESS 权限。不具备该权限的用户仅能查看自己创建的会话,无法查看其他用户的会话。

·若需要查看单个会话在数据字典缓存、执行计划等维度的详细信息,请参见 PROCESSLIST,通过查询 information_schema.PROCESSLIST 视图获取。该视图与 SHOW PROCESSLIST 的字段顺序不同,且仅返回当前连接节点的会话,不会跨节点汇聚。

·集群内各计算节点的系统变量 performance_schema_show_processlist 取值需保持一致,否则在 GLOBAL 模式下汇聚其他节点会话时可能因返回结果的列数不一致而被跳过,并返回警告信息。

·如需终止某个会话或其正在执行的语句,可以使用 KILL [CONNECTION | QUERY] 会话 ID 语句。

赞 (0)
上一篇 4天前
下一篇 4天前