加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么Postgresql上的SET CONSTRAINTS ALL DEFERRED需要很长时间

发布时间:2020-12-13 16:01:29 所属栏目:百科 来源:网络整理
导读:我们的Postgres 9.2.4服务器平均需要0.69秒(15000条语句)才能执行 SET CONSTRAINTS ALL DEFERRED 为什么会这样? 在表定义中使用INITIALLY DEFERRED而不使用SET CONSTRAINTS ..会消除这个时间还是只是将其隐藏在其他地方? 解决方法 Imho,这可能是因为每次运
我们的Postgres 9.2.4服务器平均需要0.69秒(15000条语句)才能执行

SET CONSTRAINTS ALL DEFERRED

为什么会这样?

在表定义中使用INITIALLY DEFERRED而不使用SET CONSTRAINTS ..会消除这个时间还是只是将其隐藏在其他地方?

解决方法

Imho,这可能是因为每次运行此语句时,后台发生的事情都是对位于pg_catalog中的表定义的重大更新声明.换句话说,您将死行添加到pg_catalog中,这会导致在适当的seq扫描期间访问的磁盘空间量越来越大.

如果你真的每天运行15k次语句,或许你需要对你的架构或工作流程进行冷酷的观察?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读