首页 > 其他分享 >KingbaseES查找慢查询语句和阻塞会话

KingbaseES查找慢查询语句和阻塞会话

时间:2024-03-28 15:47:12浏览次数:27  
标签:语句 start pid 查询 sys 会话 query syssa KingbaseES

在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤。数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈。
当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执行时间过长的查询,这些查询通常被称为“慢查询”。
同时,阻塞会话即那些因等待资源(如锁)而暂停执行的会话也是导致性能问题的常见原因。
通过对这些慢查询和阻塞会话的有效监控和分析,我们不仅可以识别当前的性能瓶颈,还可以采取预防措施,避免未来的性能问题。
接下来,我们将探讨在数据库管理中,如何使用特定的查询语句来检测和分析这些慢查询和阻塞会话。

慢查询和阻塞会话
SELECT syssa.pid, 
sys_blocking_pids(pid) AS blocking_pid, 
TO_CHAR(INTERVAL '1 second' * trunc(EXTRACT(epoch FROM (NOW() - syssa.query_start))), 'HH24:MI:SS') AS query_runtime, 
TO_CHAR(INTERVAL '1 second' * trunc(EXTRACT(epoch FROM (NOW() - syssa.xact_start))), 'HH24:MI:SS') AS xact_runtime, 
syssa.client_port, 
syssa.datname, 
syssa.usename, 
syssa.client_addr, 
syssa.application_name, 
syssa.state, 
syssa.wait_event, 
syssa.wait_event_type, 
syssa.backend_xid, 
syssa.backend_xmin, 
syssa.backend_start, 
syssa.xact_start, 
syssa.state_change, 
syssa.query_start AS query_start, 
trunc(EXTRACT( epoch FROM (NOW() - syssa.xact_start) )) AS xact_stay, 
trunc(EXTRACT( epoch FROM (NOW() - syssa.query_start) )) AS query_stay, 
syssa.QUERY, 
syssa.backend_type, 
'select sys_terminate_backend('||syssa.pid||');' kill1, 
'select sys_cancel_backend('||syssa.pid||');' kill2 
FROM sys_stat_activity AS syssa WHERE 
syssa.state not in ( 'idle' ,'idle in transaction (aborted)' ) and syssa.pid not in (sys_backend_pid()) 
ORDER BY query_stay DESC,xact_stay DESC,pid LIMIT 100;

查询阻塞的进程id
SELECT pid, usename, sys_blocking_pids(pid) AS blocking_pid, query FROM sys_stat_activity WHERE cardinality(sys_blocking_pids(pid)) > 0;

标签:语句,start,pid,查询,sys,会话,query,syssa,KingbaseES
From: https://www.cnblogs.com/kingbase/p/17931055.html

相关文章

  • KingbaseES自动生成列介绍
    在KingbaseES中createtable语句支持GENERATEDcolumn(生成列)。生成列是一种特别的列类型,它的值基于其他列的值计算得出。因此,生成列之于列,有点像视图之于表的关系。存在两种类型的生成列:存储生成列和虚拟生成列。存储生成列在数据被写入(插入或更新操作)时进行计算,并且像常规列......
  • KingbaseES LWLock buffer_mapping 等待
    在KingbaseES数据库中,会话在将数据块与共享缓冲池的缓冲区相关联时,会触发“LWLockbuffer_mapping”等待事件。这类事件涉及到一种轻量级锁(lwlock),类似于Oracle中的闩锁。这个锁在不同的数据库中可能有不同的名称,但通常被称为buffer_mapping或BufMappingLock。它主要用于实现对HAS......
  • KingbaseES V8R6集群运维案例之---主备failover切换原因分析
    案例说明:生产环境,KingbaseESV8R6的集群发生failover切换,分析集群切换的原因。适用版本:KingbaseESV8R6集群架构:137.xx.xx.67主原备库137.xx.xx.94原主库137.xx.xx.68vip地址一、日志分析1、分析原备库hamgr.log如下所示,通过原备库hamgr.log日志获取到具体......
  • KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障
    案例说明:由于限制了用户对数据库的访问,导致在执行‘sys_backup.shinit’初始化物理备份时,执行失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行‘sys_backup.shinit’初始化物理备份:1、执行初始化失败[kingbase@node201bin]$shsys_backup.shinitERROR:Con......
  • C语言例4-29:计算1+2+...+100之和(利用do-while语句实现)。
    代码如下://计算1+2+...+100之和(利用do-while语句实现)。#include<stdio.h>intmain(void){ intn=1,sum=0; do { sum=sum+n; n++; }while(n<=100); printf("sum=%d\n",sum); return0;}结果如下:说明:本例中do-while循环和while循环完成相同的功能。但是,当......
  • MYSQL各类查询语句——kile,between,in
    1、创建数据表——DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'姓名',`pwd`varchar(36)DEFAULT......
  • MYSQL语句-查询
    1、制表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'姓名',`pwd`varchar(36)DEFAULTNULLCOMM......
  • MySql单表操作学习DDL_DML_DQL语句
     数据库名称可以为【schoolDB】,字符集【utf8】,排序规则【utf8_general_ci】。1、创建数据表——DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar......
  • MYSQL各类查询语句—DDL
    1.联系表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'姓名',`pwd`varchar(36)DEFAULTNULLCO......
  • c语言:从键盘输入任意年月,输出该年月的天数(用switch语句完成)
    1.switch语句(1)switch是c语言的关键字,switch()后面使用花括号括起来的部分称为switch语句体。(2)紧跟在switch后一对圆括号中的表达式可以是整形表达式,以及后面的将要学习的字符型表达式等。表达式两边的一对括号不能省略。switch()(3)case也是关键字,与其后面的常量表达式合称cas......