SuperAPI AI 工具集

postgres-errors-statement-timeouts

数据与分析

查看项目

更新于 10-15 22:18

技能介绍

本技能针对 PostgreSQL 中五类超时 GUC 的配置与排错:statement_timeout(单条语句总运行时间,超时中止语句,SQLSTATE 57014)、lock_timeout(等待锁的时间,超时中止语句,55P03)、idle_in_transaction_session_timeout(事务内空闲时间,超时终止会话,25P03)、idle_session_timeout(无事务时空闲,终止会话,类 08,v14+)、transaction_timeout(事务总时长,终止会话,v17+)。默认均为 0,即禁用。

主要用途包括:查询被超时取消、会话空闲持锁、VACUUM 无法清理、迁移 ALTER TABLE 阻塞流量,以及为 Web、批处理、迁移角色选择超时值。核心建议:生产环境始终设置非零 idle_in_transaction_session_timeout;迁移前先设小 lock_timeout(如 3s),失败即返回 55P03 而不阻塞全表;用 ALTER ROLE/DATABASE ... SET 按角色或库划分超时,而非全局一刀切;Web 角色用短 statement_timeout(如 5s–15s);v17+ 可用 transaction_timeout 设硬上限;lock_timeout 应小于 statement_timeout,否则永不触发;不要盲目重试由 statement_timeout 触发的 57014,慢查询需要索引而非重试;区分「due to statement timeout」「due to user request」「due to conflict with recovery」等消息文本。与死锁、序列化失败、连接认证等错误技能分工不同。具体超时数值与命令以官方文档为准。