码迷,mamicode.com
首页 > 数据库 > 详细

pg数据库数据表异常挂起

时间:2017-06-08 01:23:43      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:重装   gre   tar   增删改   detail   sql命令   时间   targe   .net   

pg数据库即是PostgreSQL数据库。

前几天在一个Java项目中,出现运行Java程序后,pg数据库的数据表异常挂起。而且是在某台电脑上出现的,重装数据库也没用,其它电脑未能复现,是个很奇怪的现象。

异常挂起的主要表现是:

1、使用pgAdmin选中相应的表,会导致pgAdmin未响应,并且很长时间都无法恢复。

2、使用pgAdmin直接sql命令增删查改都无法执行,执行所花时间从几十毫秒一直增长到几分钟,预计会一直增长下去。

3、只有重启PostgreSQL服务才能让出现异常的数据表恢复正常,恢复到既能选中,又能通过sql语句增删改查。

最终经过排查,确定出是因为Java中使用truncate命令对数据表进行清表操作导致了数据表异常挂起,之后把truncate命令换成了delete命令则一切正常。

在排查过程中,在pgAdmin中使用truncate命令直接清理会出现异常的表,也能复现前面的问题,而delete正常使用。

 

下面附上truncate、delete以及drop的区别:drop、truncate和delete的区别

 

至于这个特例情况下,truncate为什么会导致数据表挂起,我一直没想明白,希望有知道的人可以帮忙指点迷津。

pg数据库数据表异常挂起

标签:重装   gre   tar   增删改   detail   sql命令   时间   targe   .net   

原文地址:http://www.cnblogs.com/kumu/p/6959777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!