当前位置: 首页 > web >正文

GaussDB 数据库架构师修炼(十九)-性能调优-长事务分析

1 问题描述

长事务在数据库的表现是session持续时间长,期间可能伴随CPU、内存升高,严重可导致数据库整体响应 缓慢,业务无法正常运行,所以在业务系统中应该尽量避免长事务的发生。

2 问题现象

用户执行事务耗时过长

3 对业务影响

  • 1 可能造成大量业务等锁超时
  • 2 执行时间长,容易造成主备复制时延过高
  • 3 回滚所需要的时间比较长

4 主要原因

1 大量的锁竞争

2 执行了比较耗时的SQL

5 处理过程

步骤1:通过pg_stat_activity视图,查询当前数据库中存在的长事务:

select  pid, sessionid, query_id,substring(query,0,100) as query, state, usename, now()-xact_start as runtime    
from pg_stat_activity 
where state!='idle' 
and datname in('postgres') 
and usename in  ('root') 
and extract(epoch from current_timestamp-xact_start)/60 > 0.5;

如上查询结果返回数据库中执行时间超过30s的长事务

步骤2:结合pg_thread_wait_status视图通过如下语句查看长事务会话的阻塞情况,排查是否因为锁阻塞导致。

gaussdb=> select 
a.query_id,
a.query,
b.wait_status, 
b.wait_event, 
b.block_sessionid,
c.pid,
block_pid,
c.query as block_query
from pg_stat_activity a,pg_thread_wait_status b,pg_stat_activity c
where a.query_id= b.query_id 
and b.block_sessionid=c.sessionid 
and a.state!='idle' 
and a.query_id=1962725012603471261;

步骤3:通过如下结果可以定位到当前语句的wait_status态为acquire_lock,以及阻塞当前语句的会话idquery信息。如果wait_status状态为none,说明该长事务非锁阻塞导致,可能是事务本身长时间执行未结束。

步骤4:如果是锁阻塞导致或事务自身原因长时间执行未结束, kill当前会话:

pg_terminate_session($pid, $sessionid);

http://www.xdnf.cn/news/19838.html

相关文章:

  • leetcode-每日一题-3025. 人员站位的方案数 I-C语言
  • 解决完美主义的方法是,去追求不完美--辩证法
  • OpenAI印度1GW数据中心计划:全球AI基础设施博弈的加速
  • Web3 出海香港 101 |BuildSpace AMA 第一期活动高亮观点回顾
  • 向成电子惊艳亮相2025物联网展,携工控主板等系列产品引领智造新风向
  • Linux网络编程套接字(五)之简单的TCP网络程序3【TCP守护进程化】
  • Corona渲染噪点终结指南:3ds Max高效去噪全攻略
  • matplotlib中文宋体,西文新罗马
  • 自学嵌入式第三十二天:网络编程-UDP
  • 最常见的设备管理系统有哪些?设备采购、盘点、库存管理软件TOP10
  • 只需几条命令,本地体验微软最新长文本语音合成 VibeVoice(支持中文)
  • 专有云企业级特征
  • Turso数据库:用Rust重构的下一代SQLite——轻量级嵌入式数据库的未来选择
  • 碳酸钆:稀土家族里看不见的科技推手
  • 【Maven】《十分钟搞清Maevn项目》
  • 第四章 windows实战-emlog
  • 什么是流程图:流程六要素、三大结构及绘制规范总结
  • 【光照】Unity中的[经验模型]
  • 零工考勤不准、发薪扯皮?盖雅方案让每份工时都清晰可信
  • Web3兴起:重新定义互联网格局
  • 51c大模型~合集177
  • 对象存储 - 同步数据
  • 分布式爬虫的全局请求间隔协调与IP轮换策略
  • 开发(1)获取用户登录IP
  • 信息安全各类加密算法解析
  • 【C++】14. 多态
  • uniapp H5预览图片组件
  • 在VS Code中直接操控浏览器
  • CodeForge v25.0.3 发布:Web 技术栈全覆盖,编辑器个性化定制新时代
  • USB4与PCIe的技术融合:新一代接口协议的架构革新