PG 14新特性之ALTER TABLE DETACH 支持 CONCURRENTLY

0    239    2

Tags:

👉 本文共约945个字,系统预计阅读时间或需4分钟。

简介

担心ALTER TABLE DETACH因忘记设置statement_timeout而长时间锁表吗? PostgreSQL 14支持CONCURRENTLY了, 完美解决烦恼。

在PG 14版本之前,执行alter table pt_table detach partition part_name;命令会阻塞该分区表(及父表)的所有操作,包括SELECT操作,这是非常严重的。从PG14开始,加上CONCURRENTLY后,就不再阻塞其它会话了,只是其它会话会报错而已。

模拟过程:

1、新显式开启事务,插入一条数据,别提交

2、执行alter table pt_table detach partition part_name;

3、新开事务,做任何操作都哈卡住

在 PostgreSQL 中,statement_timeout 是一个会话级别的配置选项,用于设置在执行单个 SQL 语句时的超时时间。当执行的 SQL 语句运行时间超过指定的超时时间时,PostgreSQL 将中断该语句的执行并返回错误。

statement_timeout 参数的单位是毫秒(milliseconds),默认值为 0,表示禁用超时。如果设置了非零的值,它将应用于会话中的每个 SQL 语句,除非在执行语句时明确指定了其他超时值。

可以通过两种方式设置 statement_timeout 参数:

postgresql.conf 配置文件中全局设置:编辑 postgresql.conf 文件,找到 statement_timeout 参数并设置所需的超时值(以毫秒为单位)。修改后,需要重新启动 PostgreSQL 服务器才能使更改生效。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复