GBase 8a
运维管理
文章

gbase8a的show processlist命令介绍

发表于2025-01-03 21:07:11126次浏览2个评论

show processlist命令查询信息:

各个列的含义:
①id列:用户登录gbase时,系统分配的"connection_id",可以使用函数connection_id()查看
②User列:显示当前用户。如果不是dba用户,这个命令就只显示用户权限范围的sql语句
③host列:显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户
④db列:显示这个进程目前连接的是哪个数据库
⑤command列:显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)等,详见下面具体介绍
⑥time列:显示这个状态持续的时间,单位是秒
⑦state列:显示使用当前连接的sql语句的状态,很重要的列,详见下面具体介绍。
⑧info列:显示这个sql语句,是判断问题语句的一个重要依据

command列值说明:

 

command描述
Change User正在执行一个 change-user 的操作
Close Stmt  正在关闭一个Prepared Statement 对象
Daemon  服务器内部线程,而不是来自客户端的链接
Execute  正在执行一个 Prepared Statement
Fetch  正在从Prepared Statement 中获取执行结果
Kill    正在执行 kill 语句,杀死指定线程
Prepare 该线程正在准备一个 Prepared Statement
ProcessList  该线程正在生成服务器线程相关信息
Query  该线程正在执行一个语句
Quit  该线程正在退出
Refresh该线程正在刷表,日志或缓存;或者在重置状态变量,或者在复制服务器信息
Set Option  正在设置或重置客户端的 statement-execution 选项
Sleep  正在等待客户端向它发送执行语句

    

状态 描述
init表示SQL进入准备执行阶段,也就是执行计划开始
deleting from main table/updating main table准备对表做delete或update操作
end/query endSQL进入结束阶段,准备清理资源
Creating tmp table查询过程中,正在创建临时表
Checking table正在检查数据表(这是自动的)
Closing tables关闭打开的表
Flushing tables正在执行FLUSH TABLES,等待其他线程关闭数据表。
Killed发送了一个kill请求给某线程,那么这个线程将会检查kill标志位,同时会放弃下一个kill请求。gbase会在每次的主循环中检查kill标志位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被其他线程锁住了,那么kill请求会在锁释放时马上生效
Locked被其他查询锁住了
Sending task to gnodes发送任务到gnode
Sending data正在处理SELECT查询的记录,同时正在把结果发送给客户端。
Opening tables这个过程应该会很快,除非受到其他因素的干扰。例如,在执ALTER TABLE或LOCK TABLE语句行完以前,数据表无法被其他线程打开。正尝试打开一个表。
Creating tmp table查询完成,清除临时表

 

 

 

评论

登录后才可以发表评论
菲菲发表于 2个月前
谢谢分享
用户头像
levvel发表于 2个月前
进来看看,应该有收获