帮你快速理解、总结文档立即下载

SHOW PROCESSLIST

最近更新时间:2026-08-18 19:12:05
我的收藏

功能描述

SHOW PROCESSLIST 用于查看当前正在执行的会话列表,返回内容包括会话 ID、执行用户、来源地址、执行语句和执行状态等信息,常用于定位耗时查询、连接异常等问题。
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 耗时、内存占用、锁等待等扩展统计列,便于精细化排查性能问题。
不指定 FULLDETAIL 时,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 语句。