分析planning time超长(近1秒)和planning shared hit超100万的问题,根因是pg_statistic表膨胀导致CatCacheMiss时缓存了大量死元组数据
分析长事务导致表膨胀后主键查询变慢的经典案例:大量死元组无法被vacuum回收,主键扫描被迫遍历膨胀的页面导致CPU飙升
分析LEFT JOIN中某张表未出现在执行计划中的现象,根因是优化器通过JOIN消除优化移除了不需要输出列的外部表
分析partition of创建子分区耗时35分钟的根因:default分区有50GB数据,新增分区时需全量校验default分区数据是否与新分区范围冲突
分析UPDATE报错too many range table entries而SELECT正常的原因,通过源码定位到UPDATE触发所有分区参与plan导致range table条目超出上限
分析5MB巨型SQL占用70GB内存导致OOM的根因,深入探讨执行计划缓存、子计划内存消耗与work_mem局限性的关系
分析添加分区键过滤条件后UPDATE反而变慢的问题,根因是分区权限检查导致优化器对所有分区都选择了错误的索引而非过滤性更好的索引
分析逻辑复制walsender因内存不足导致replication_slot_io等待,连锁阻塞checkpoint和备份进程的故障排查过程
分析执行计划选择错误索引的根因:月末统计信息过旧导致谓词越界,配合prepare statement缓存使analyze后执行计划仍不更新
分析insert values偶发变慢问题,通过等待事件定位到WALWrite锁竞争,根源是大量并发写入时WAL刷写成为瓶颈