openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态

文章目录

    • [openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态](#openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态)
      • [195.1 分析查询语句运行状态](#195.1 分析查询语句运行状态)
        • [195.1.1 问题现象](#195.1.1 问题现象)
        • [195.1.2 处理办法](#195.1.2 处理办法)

openGauss学习笔记-195 openGauss 数据库运维-常见故障定位案例-分析查询语句运行状态

195.1 分析查询语句运行状态

195.1.1 问题现象

系统中部分查询语句运行时间过长,需要分析查询语句的运行状态。

195.1.2 处理办法
  1. 以操作系统用户omm登录主机。

  2. 使用如下命令连接数据库。

    css 复制代码
    gsql -d postgres -p 8000

    postgres为需要连接的数据库名称,8000为端口号。

  3. 设置参数track_activities为on。

    vbnet 复制代码
    SET track_activities = on;

    当此参数为on时,数据库系统才会收集当前活动查询的运行信息。

  4. 查看正在运行的查询语句。以查看视图pg_stat_activity为例。

    sql 复制代码
    SELECT datname, usename, state, query FROM pg_stat_activity; 
    datname  | usename | state  | query 
    ----------+---------+--------+-------
    postgres | omm     | idle   | 
    postgres | omm     | active | 
    (2 rows) 

    如果state字段显示为idle,则表明此连接处于空闲,等待用户输入命令。 如果仅需要查看非空闲的查询语句,则使用如下命令查看。

    sql 复制代码
    SELECT datname, usename, state, query FROM pg_stat_activity WHERE state != 'idle';
  5. 分析查询语句为活跃状态还是阻塞状态。通过如下命令查看当前处于阻塞状态的查询语句。

    sql 复制代码
    SELECT datname, usename, state, query FROM pg_stat_activity WHERE waiting = true;

    查询结果中包含了当前被阻塞的查询语句,该查询语句所请求的锁资源可能被其他会话持有,正在等待持有会话释放锁资源。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

相关推荐
weelinking1 小时前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理
2301_803934611 小时前
Go语言如何做网络爬虫_Go语言爬虫开发教程【指南】
jvm·数据库·python
秋92 小时前
windows中安装redis
数据库·redis·缓存
Cosolar2 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
想唱rap3 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
SeaTunnel3 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
凯瑟琳.奥古斯特3 小时前
数据冗余与规范化的本质[数据库原理]
开发语言·数据库·职场和发展
_ku_ku_4 小时前
数据库系统原理 · SQL 数据定义、更新及数据库编程 · 自学总结
数据库·oracle
Mortalbreeze4 小时前
深度理解文件系统 ---- 从磁盘存储到内核存储
大数据·linux·数据库
2301_803934614 小时前
MySQL 字段类型选择规范指南
jvm·数据库·python