0
我尝试在我的Postgres数据库中创建表。我在版本1.18.1中使用pgadmin。服务器上的Postgres版本是8.3.12。创建表永不结束
当我执行创建表语句时,通常它在几毫秒内完成,但有时它会持续几分钟,我停止它。然后我必须重新启动Postgres服务器,这是不可取的。我在人们上班之前尝试过创建表格,但那不起作用。
有类似的问题吗?我该如何解决这个问题? 重启服务器有时真的有问题。
我尝试在我的Postgres数据库中创建表。我在版本1.18.1中使用pgadmin。服务器上的Postgres版本是8.3.12。创建表永不结束
当我执行创建表语句时,通常它在几毫秒内完成,但有时它会持续几分钟,我停止它。然后我必须重新启动Postgres服务器,这是不可取的。我在人们上班之前尝试过创建表格,但那不起作用。
有类似的问题吗?我该如何解决这个问题? 重启服务器有时真的有问题。
默认情况下,一些具有Postgres支持的GUI数据库管理程序以noautocommit模式启动。这意味着如果你没有隐式地提交你的语句,这个程序会长时间保持闲置的未提交的会话,锁定资源 - 特别是当你执行DDL语句如create table
时。
检查:
select now()-query_start as query_age, *
from pg_stat_activity
where state<>'idle'
order by 1 desc;
,如果你看到长的时间在query_age
列和idle in transaction
状态行,那么你真的需要启用自动提交您的客户端程序。其实你需要这样做,即使你不...
它可能正在等待一个锁:https://wiki.postgresql.org/wiki/Lock_Monitoring但是,为什么你使用古老的和不受支持的Postgres版本? –
它不取决于我...我们的管理不允许更新。当我们想要将Java从版本6更新到8时,我们几乎没有战争... – mdolata
您是否有autovacuum运行? (真空在pg-8.4,IIRC之前没有自动运行) – wildplasser