PostgreSql在大表上丢弃CONSTRAINT非常慢

时间:2015-09-04 15:20:34

标签: performance constraints postgresql-9.2

我们在Windows上运行的PostgreSql 9.2中有一个数据库表,其中包含大约7.5亿行。我们在列上删除了FK约束,但该语句现在已运行48小时,但仍未完成。

服务器有32GB RAM和16个CPU。遗憾的是,在运行SQL语句之前,我们没有增加maintenance_work_mem。因此设置为256MB。机器上的资源甚至没有接近最大值。事实上:CPU使用率低于3%,我们有80%的RAM可用,磁盘I / O不超过5MB / s,即使机器可以轻松超过100MB / s。

  1. 为什么放弃FK CONSTRAINT需要这么长时间?
  2. 有没有办法在运行时提高此语句执行的性能?
  3. 将FK CONSTRAINT添加到此大小的表中的最有效方法是什么?

0 个答案:

没有答案