ITPub博客

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

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

原创 数据库开发技术 作者:shuchaoyang 时间:2023-10-14 07:00:00 0 删除 编辑

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

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

195.1 分析查询语句运行状态

195.1.1 问题现象

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

195.1.2 处理办法

  1. 以操作系统用户omm登录主机。

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

    gsql -d postgres -p 8000

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

  3. 设置参数track_activities为on。

    SET track_activities = on;

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

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

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

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

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

    SELECT datname, usename, state, query FROM pg_stat_activity WHERE waiting = true;

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


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

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

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


PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303683