PostgreSQL 性能问题诊断:锁等待、索引失效与查询计划分析

article/2025/7/20 5:58:05

在高并发、大数据量的 PostgreSQL 应用场景中,锁等待、索引失效与查询计划异常是导致性能下降的三大核心问题。

本文将系统解析如何通过 pg_lockspg_stat_activityEXPLAIN ANALYZE 等工具快速诊断问题,并结合实战案例与代码示例,帮助开发者构建完整的性能调优知识体系。


一、锁等待问题诊断与解决

1. PostgreSQL 锁机制概述

PostgreSQL 支持多种锁类型(如行级锁、表级锁、事务锁),但锁竞争可能导致事务阻塞、死锁或长等待

在这里插入图片描述

以下为常见锁等待场景:

锁类型触发场景影响
行级锁(Row-Level Lock)UPDATE/DELETE 操作高并发写入时易引发锁冲突
表级锁(Table-Level Lock)DDL 操作(如 CREATE INDEX)阻塞其他事务
事务锁(Transaction Lock)长事务占用资源,导致 WAL 文件膨胀

2. 使用 pg_locks 与 pg_stat_activity 分析锁等待

(1)查看当前锁信息
-- 查询 pg_locks 与 pg_stat_activity 联合分析
SELECT pid, locktype, relation::regclass, mode, granted,now() - query_start AS duration,query
FROM pg_stat_activity pa
JOIN pg_locks l ON pa.pid = l.pid
WHERE l.granted = FALSE;

输出示例

pid | locktype | relation   | mode           | granted | duration | query
1234| relation | orders     | RowExclusiveLock | false   | 00:05:00 | UPDATE orders SET status = 'paid' WHERE order_id = 100;

关键字段解析

  • granted = FALSE:表示该锁请求正在等待。
  • duration:锁等待时间,超过阈值需重点关注。
  • query:当前执行的 SQL 语句。
(2)终止阻塞进程
-- 终止长时间等待的会话
SELECT pg_terminate_backend(1234);  -- 替换为实际 pid

在这里插入图片描述

3. 实战案例:长事务导致的锁等待

问题背景:某金融系统在批量更新订单状态时出现锁等待,事务执行时间超过 10 分钟。

排查步骤

  1. 定位长事务
    -- 查询运行超过 5 分钟的事务
    SELECT pid, age(query_start, clock_timestamp()), query 
    FROM pg_stat_statements 
    WHERE now() - query_start > interval '5 minutes';
    
  2. 查看锁等待链
    -- 查看阻塞关系
    SELECT blocked_locks.pid AS blocked_pid,blocking_locks.pid AS blocking_pid

http://www.hkcw.cn/article/BXMxsucNmR.shtml

相关文章

3D可视化/元宇宙方向前端岗位30道Three.js高频面试题及解析

文章目录 一、核心概念二、对象与材质三、动画与交互四、性能优化五、高级渲染六、加载与资源七、工程实践八、特效实现九、调试与问题十、综合应用 一、核心概念 Three.js三大核心组件及作用 解析: 场景(Scene):容器,…

食养有方:进行性核上性麻痹患者的健康饮食指南

进行性核上性麻痹(PSP)是一种罕见的神经系统变性疾病,患者常出现吞咽困难、肌肉强直等症状,因此合理的饮食对于维持患者营养状况、延缓病情发展至关重要。 患者饮食应遵循 “均衡、易消化、高营养” 原则。主食方面,可…

瘦了不少!姚明进行恢复训练曝光 一脸笑容被调侃“亚洲杯复出”

北京时间6月2日,有博主爆料,给儿时的偶像训练引发外界的热议,特别是姚明身型变化相对比较明显,几乎是瘦了一圈,身穿运动套装一脸笑容,在过去几年极为罕见,姚明几乎每一次公开场合,或者是私下的活动都是身穿正装为主。有球迷调侃说道:姚明要复出吗,这不是亚洲杯马上要…

CodeTop100 Day19

55、从前序与中序遍历序列构造二叉树 前序是根左右,中序是左根右 写一个递归函数,build(preorder,0,preorder.length-1,inorder,0,inorder.length-1);接收的参数是先序遍历数组,起始位置,长度,…

又要热热热回来了 多地将迎持续高温

华北和黄淮地区本周将迎来更多高温天气。明天,河北南部和河南北部将出现零星高温,随后高温范围会逐渐扩大。石家庄、济南和郑州等地预计本周会有连续3到5天的高温天气。从5日起,随着副热带高压加强并向北移动,南方地区的高温也将增加。武汉、杭州和长沙在6日预报了高温,如…

如何利用自动生成文档工具打造出色的技术文档

文章目录 每日一句正能量前言一、自动生成文档工具的优势(一)提高效率(二)保持一致性(三)实时更新 二、常见的自动生成文档工具(一)Sphinx(二)Javadoc&#x…

张雪峰称或告别直播:动了太多人蛋糕 真情流露引共鸣

5月31日晚,有网友发布视频称张雪峰2025届高考志愿填报季直播结束。直播中,张雪峰提到:“做这行不容易,触动了太多人的利益,有些话不能说得太直白。我们计划8月份恢复直播,希望8月1日能和大家见面,如果不行的话,9月1日也可以,但也有可能这是你最后一次在网上见到我,我…

[蓝桥杯]剪格子

剪格子 题目描述 如下图所示,3 x 3 的格子中填写了一些整数。 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是 60。 本题的要求就是请你编程判定:对给定的 mnmn 的格子中的整数,是否可以分割为两个部…

中国援喀麦隆医疗队开展义诊活动 情暖六一关爱健康

当地时间5月30日至6月1日,中国(山西)第24批援喀麦隆姆巴尔马尤医疗队在喀麦隆杜阿拉开展了一系列健康公益活动,通过专业医疗服务和人文关怀为中非友谊注入新活力。5月30日,医疗队在中企杜阿拉项目园区进行了健康知识宣讲。医生们通过理论讲解与实操演示,系统培训了AED(自…

【连载22】基础智能体的进展与挑战综述-超对齐

21. 超对齐与人工智能智能体中的安全扩展法则 21.1 超对齐:面向目标的人工智能智能体对齐 随着大规模语言模型(LLMs)越来越多地成为自主智能体决策的核心,确保它们的输出保持安全、伦理,并始终与人类目标一致&#x…

【技术追踪】InverseSR:使用潜在扩散模型进行三维脑部 MRI 超分辨率重建(MICCAI-2023)

LDM 实现三维超分辨率~ 论文:InverseSR: 3D Brain MRI Super-Resolution Using a Latent Diffusion Model 代码:https://github.com/BioMedAI-UCSC/InverseSR 0、摘要 从研究级医疗机构获得的高分辨率(HR)MRI 扫描能够提供关于成像…

美科罗拉多州恐袭嫌疑人曝光 FBI定性恐袭

当地时间6月1日,美国科罗拉多州博尔德市一名男子向人群投掷燃烧瓶,造成6人烧伤。受害者年龄在67至88岁之间,均已送医。嫌疑人确认是45岁的穆罕默德苏莱曼,案发后亦因伤入院。FBI局长卡什帕特尔称该事件为“有针对性的恐怖袭击”,并指出FBI已将此案按恐袭处理。副局长丹邦吉…

成都90后小伙让刀剑重获新生 十年磨一剑

在成都邛崃郊外的一间工作室里,一把锈迹斑斑的古刀静静地躺在工作台上。王一凯戴上手套,拿起磨石,开始了又一个漫长的工作日。磨石与刀身接触,发出“嗤嗤”的摩擦声。褐色锈层缓缓剥落,千年前的钢铁本色渐渐显露。这把沉睡已久的古刀,在他手中慢慢苏醒。1991年出生的王一…

白俄罗斯媒体:卢卡申科将访华 深化双边合作

白俄罗斯总统卢卡申科计划于本月2日至4日访问中国。此前,卢卡申科曾表示,白中关系是互利共赢的典范。白方将坚定恪守一个中国原则,并愿与中方共同推进“一带一路”重大项目,发展新质生产力,助力各自的发展振兴。责任编辑:zhangxiaohua

气象部门回应西藏现红色精灵闪电 罕见现象揭秘

5月31日至6月1日,中国摄影师在西藏山南拍到红色精灵闪电。精灵闪电形成于大气中间层,是雷击产生电磁波的结果。据中国天气科普,它在空中存在几十分之一秒,如鬼魅一般难以捉摸。责任编辑:zhangxiaohua

吴恩达MCP课程(4):connect_server_mcp_chatbot

目录 完整代码代码解释1. 导入和初始化2. 类型定义3. MCP_ChatBot 类初始化4. 查询处理 (process_query)5. 服务器连接管理6. 核心特性总结 示例 完整代码 原课程代码是用Anthropic写的,下面代码是用OpenAI改写的,模型则用阿里巴巴的模型做测试 .env 文…

网页前端开发(基础进阶1--盒子模型)

颜色表示方法3种: 1.关键字: color:green; gray red yellow 2.rgb表示法:红,绿,蓝三原色。rgb(r,g,b),r表示红色,g表示绿…

中国造船是如何取代韩国霸主地位的 14年激战成就全球王者

在全球造船业的百年激荡中,主导权的更迭总是伴随着技术、规模与国家意志的碰撞。从19世纪的英国,到战后的日本,再到20世纪末的韩国,造船业王冠几度易主。如今,中国以雷霆万钧之势终结了韩国长达20年的霸主地位。2024年,中国造船业以74.7%的新船订单份额,全面改写全球造船…

加沙城四分之三水井被以军摧毁 缺水危机加剧

加沙城政府部门6月1日发布消息称,由于以军摧毁了当地约75%的水井,且剩余水井缺乏正常运行所需燃料,加沙城正面临严重的缺水问题和灾难性危机。该部门警告称,如果国际社会和相关机构不尽快介入,可能会引发严重的健康和环境危机。责任编辑:zhangxiaohua

马克龙接见巴黎圣日耳曼全队 谴责暴力事件

巴黎圣日耳曼队在5月31日晚赢得了欧冠联赛冠军奖杯,法国多地的球迷彻夜庆祝。然而,庆祝活动期间发生了多起暴力事件。据法国内政部消息,狂欢夜有559人因滋事被捕,并发生了两起命案。法国总统马克龙6月1日在爱丽舍宫接见球队时,严厉谴责了这些暴力事件,称其“不可接受”。…