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