檢視視窗連線到的服務程序的pid。
select pg_backend_pid();
三個視窗的pid分別如下:
select locktype,relation::regclass, virtualxid, transactionid, virtualtransaction ,pid, mode, granted from pg_locks where pid=28934;
查詢結果如下:
其中,各列的含義如下:
列名含義
locktype
被鎖定物件的型別
relation
表。如果物件不是表或表的一部分,則此值為null。
virtualxid
虛擬事務id。如果物件虛擬事務,則此值為null。
transactionid
事務id。如果物件不是事務,則此值為mull。
virtualtransaction
持有或等待這把鎖的虛擬事務的id。
pid持有或等待這把鎖的服務程序pid。
mode
鎖的模式名稱。
granted
鎖已被持有,則為ture;如果等待獲得此鎖,此值為false。
查詢結果的第一行表示:事務在自己的「virtualxid」上加「exclusivelock」鎖。
第二行表示:在表person上加鎖「acces***clusivelock」。
執行鎖表命令後,並沒有進行實際的修改操作,此時transactionid為null,這表明:事務id在實際需要的時候才產生。
由於第乙個視窗已經對person表加鎖,所以第二個視窗的鎖表語句會被阻塞住。
由上圖可知:程序28924,2052都對錶person加了鎖。但程序28924的granted為t,表示它獲得了這個鎖。程序2052的granted為f,表示它沒有獲得這把鎖,從而被阻塞了。
PostgreSQL中表大小 索引大小
需要了解每張表的具體大小,postgresql提供了很多任務具 每個表都有乙個主要的堆磁碟檔案,大多數資料都儲存在其中。如果乙個表有著可能會很寬 尺寸大 的列,則另外還有乙個toast檔案與這個表相關聯,它用於儲存因為太寬而不能儲存在主表裡面的值 如果有這個附屬檔案,那麼toast表上會有乙個可用的...
改進PostgreSQL鎖機制
如果你想構建乙個大規模的 單憑橫向擴充套件web伺服器是遠遠不夠的。如何巧妙地管理資料庫也是非常必要的。在postgresql中,借助於併發性的改進,通過減少鎖及加速執行得到若干令人滿意的特性。如果你想構建乙個大規模的 單憑橫向擴充套件web伺服器是遠遠不夠的。如何巧妙地管理資料庫也是非常必要的。鎖...
postgresql解決鎖表
查詢是否鎖表了 select oid from pg class where relname 可能鎖表了的表 select pid from pg locks where relation 上面查出的oid 如果查詢到了結果,表示該錶被鎖 則需要釋放鎖定 select pg cancel backe...