首页 > 其他分享 >openGauss 分析查询语句长时间运行的问题

openGauss 分析查询语句长时间运行的问题

时间:2024-05-13 14:18:56浏览次数:23  
标签:语句 timestamp 查询 current start query openGauss

分析查询语句长时间运行的问题

问题现象

系统中部分查询语句运行时间过长。

原因分析

  • 查询语句较为复杂,需要长时间运行。

  • 查询语句阻塞。

处理办法

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

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

    gsql -d postgres -p 8000
    

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

  3. 查看系统中长时间运行的查询语句。

    SELECT EXTRACT(DAY FROM (current_timestamp - query_start)) * 24 * 60 + EXTRACT(HOUR FROM (current_timestamp - query_start)) * 60 + EXTRACT(MINUTE FROM (current_timestamp - query_start)) AS runtime, datname, usename, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY 1 desc;
    
    -- 如果是在B兼容模式下,可以执行下述语句:
    SELECT timestampdiff(minutes, query_start, current_timestamp) AS runtime, datname, usename, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY 1 desc;
    

    查询会返回按执行时间长短从大到小排列的查询语句列表。第一条结果就是当前系统中执行时间长的查询语句。

    如果当前系统较为繁忙,可以使用TIMESTAMPDIFF函数通过限制current_timestamp和query_start大于某一阈值查看执行时间超过此阈值的查询语句。timestampdiff的第一个参数为时间差单位。例如,执行超过2分钟的查询语句可以通过如下语句查询。

    SELECT query FROM pg_stat_activity WHERE (EXTRACT(DAY FROM (current_timestamp - query_start)) * 24 * 60 + EXTRACT(HOUR FROM (current_timestamp - query_start)) * 60 + EXTRACT(MINUTE FROM (current_timestamp - query_start))) > 2;
    
    -- 如果是在B兼容模式下,可以执行下述语句:
    SELECT query FROM pg_stat_activity WHERE timestampdiff(minutes, query_start, current_timestamp) > 2;
    
  4. 分析长时间运行的查询语句状态。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:语句,timestamp,查询,current,start,query,openGauss
From: https://www.cnblogs.com/renxyz/p/18189103

相关文章

  • SQL Server实战七:自定义数据类型、标量值、内嵌表值、多语句表值函数的操作
      本文介绍基于MicrosoftSQLServer软件,实现数据库用户自定义数据类型的创建、使用与删除,以及标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除方法。目录1用SQL语句创建一个用户定义的数据类型Idnum2使用Idnum创建学生表STUDENT与教师表TEACHER3交互式......
  • 分组查询
    语法select分组函数,列(要求出现在groupby的后面)from表【where筛选条件】groupby分组的列表【orderby子句】注意:查询列表必须特殊,要求是分组函数和groupby后出现的字段特点:......
  • SQLServer如何查询近3分钟最消耗CPU的SQL
    在SQLServer中,要查询近3分钟最消耗CPU的SQL语句,可以使用sys.dm_exec_query_stats动态管理视图结合sys.dm_exec_sql_text函数来获取SQL语句的文本。不过,直接查询近3分钟的数据可能需要一些额外的逻辑来筛选时间范围,因为sys.dm_exec_query_stats并不直接提供时间筛选的功能。一种......
  • sql学习:终于把sql case语句使用讲明白了,一看就懂
    作者|幸福it民工来源|今日头条在数据库查询分析中,经常遇到case条件判断,总结出来供大家参考,下面通过两个实例给大家讲解。case用途介绍:CASE是多条件分支语句,相比IF…ELSE语句,CASE语句进行分支流程控制可以使代码更加晰,易于理解。CASE语句也根据表达式逻辑值的真假来决定执......
  • [转帖]openGauss数据库性能调优
    https://www.modb.pro/db/29135 概述本文描述了openGauss数据库基于Taishan服务器,在openEuler操作系统上,为了达到数据库的极致性能,所依赖的关键系统级调优配置。硬件规格:CPU:鲲鹏-920(1620)ARMaarch6464核*2内存:>=512G磁盘:NvmeSSD*4(每块大于1TB)网卡:......
  • java MySQL的in查询两个字段同时相等的多个数据查询
    在Java中想进行下面的查询,不想写循环一条条查selectid,name,address,age fromuserswherename='A' and address='addr1'selectid,name,address,age fromuserswherename='B' and address='addr2'selectid,name,address,age fromusers......
  • ClickHouse 高性能网关组件 查询优化
    ClickHouse进阶|如何自研一款企业级高性能网关组件?https://mp.weixin.qq.com/s/UFTtlD2KQH9e_Y91sEF5xAClickHouse查询优化详细介绍https://mp.weixin.qq.com/s/38RMVbw25P3iuE4IIuxdogClickHouse进阶|性能提升20倍!深度解析Projection优化实践https://mp.weixin.qq.com/s/EMzd......
  • SQL SERVER 数据库清空语句 忽略外键 触发器 等(转载)
    有时候我们想清空SQLServer中所有表的数据,但是由于有外键约束和触发器,有时候清表语句无法执行,下面的语句可以关掉和开启一个数据库中的所有外键约束和触发器,以便执行清表语句:USEClothesShopEXECUTEsp_MSForEachTable'ALTERTABLE?NOCHECKCONSTRAINTALL'EXECUTEsp_MS......
  • Beego-Orm-关联查询
    packagemodelsimport"github.com/beego/beego/v2/client/orm"typeCustomerstruct{Idint`orm:"pk;auto""`UserNamestringSexstring`orm:"size(5)"`Mobilestring`orm:"size(11)"`Ord......
  • mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nona
    官方解释:ONLY_FULL_GROUP_BY是MySQL数据库提供的一个sql_mode,通过这个sql_mode来保证,SQL语句“分组求最值”合法性的检查.这种模式采用了与Oracle、DB2等数据库的处理方式。即不允许selecttargetlist中出现语义不明确的列.对于用到GROUPBY的select语句,查出......