亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Postgresql - 查看鎖表信息的實現

Postgresql - 查看鎖表信息的實現

熱門標簽:海豐有多少商家沒有地圖標注 地圖標注和圖片名稱的區別 辦公外呼電話系統 漯河外呼電話系統 合肥公司外呼系統運營商 打電話智能電銷機器人授權 重慶自動外呼系統定制 美容工作室地圖標注 外呼調研系統

查看表鎖信息,是DBA常用的腳本之一。

實驗環境:

CentOS 7

PG 10.4

先通過A窗口執行

mytest=# begin;
BEGIN
mytest=# update t1 set col1 = 'a' where id =1 ;
UPDATE 1
mytest=#

打開B窗口執行

mytest=# begin;
BEGIN
mytest=# update t1 set col1 = 'b' where id =2;
UPDATE 1
mytest=# update t1 set col1 = 'b' where id =1;

等待了

說明只鎖住了行,對于更新其他行沒有影響。

再打開一個窗口查看信息

SELECT
a.datname,
locktype,
virtualtransaction,
transactionid,
nspname,
relname,
mode,
granted,
cast(date_trunc('second',query_start) AS timestamp) AS query_start
FROM
pg_locks
LEFT OUTER JOIN pg_class ON (pg_locks.relation = pg_class.oid)
LEFT OUTER JOIN pg_namespace ON (pg_namespace.oid = pg_class.relnamespace),
pg_stat_activity a
WHERE NOT pg_locks.pid = pg_backend_pid()
AND pg_locks.pid=a.pid;
datname | locktype | virtualtransaction | transactionid | nspname | relname | mode | granted | query_start
---------+---------------+--------------------+---------------+---------+---------+------------------+---------+---------------------
mytest | relation | 7/332 | | public | t1 | RowExclusiveLock | t | 2018-06-28 06:29:58
mytest | virtualxid | 7/332 | | | | ExclusiveLock | t | 2018-06-28 06:29:58
mytest | relation | 6/42 | | public | t1 | RowExclusiveLock | t | 2018-06-28 06:29:35
mytest | virtualxid | 6/42 | | | | ExclusiveLock | t | 2018-06-28 06:29:35
mytest | transactionid | 7/332 | 712 | | | ExclusiveLock | t | 2018-06-28 06:29:58
mytest | transactionid | 6/42 | 711 | | | ExclusiveLock | t | 2018-06-28 06:29:35
mytest | transactionid | 7/332 | 711 | | | ShareLock | f | 2018-06-28 06:29:58
mytest | tuple | 7/332 | | public | t1 | ExclusiveLock | t | 2018-06-28 06:29:58
(8 rows)

補充:如何查看PostgreSQL正在執行的SQL以及鎖信息

查看當前正在運行的SQL

SELECT 
procpid, 
start, 
now() - start AS lap, 
current_query 
FROM 
(SELECT 
backendid, 
pg_stat_get_backend_pid(S.backendid) AS procpid, 
pg_stat_get_backend_activity_start(S.backendid) AS start, 
pg_stat_get_backend_activity(S.backendid) AS current_query 
FROM 
(SELECT pg_stat_get_backend_idset() AS backendid) AS S 
) AS S 
WHERE 
current_query > 'IDLE>' 
ORDER BY 
lap DESC; 
procpid:進程id 
start:進程開始時間 
lap:經過時間 
current_query:執行中的sql 
怎樣停止正在執行的sql 
SELECT pg_cancel_backend(進程id); 
或者用系統函數 
kill -9 進程id;

查看數據庫目前是否有鎖

-- 查看當前事務鎖等待、持鎖信息的SQL
with  
t_wait as  
(  
 select a.mode,a.locktype,a.database,a.relation,a.page,a.tuple,a.classid,a.granted,  
 a.objid,a.objsubid,a.pid,a.virtualtransaction,a.virtualxid,a.transactionid,a.fastpath,  
 b.state,b.query,b.xact_start,b.query_start,b.usename,b.datname,b.client_addr,b.client_port,b.application_name  
  from pg_locks a,pg_stat_activity b where a.pid=b.pid and not a.granted  
),  
t_run as  
(  
 select a.mode,a.locktype,a.database,a.relation,a.page,a.tuple,a.classid,a.granted,  
 a.objid,a.objsubid,a.pid,a.virtualtransaction,a.virtualxid,a.transactionid,a.fastpath,  
 b.state,b.query,b.xact_start,b.query_start,b.usename,b.datname,b.client_addr,b.client_port,b.application_name  
  from pg_locks a,pg_stat_activity b where a.pid=b.pid and a.granted  
),  
t_overlap as  
(  
 select r.* from t_wait w join t_run r on  
 (  
  r.locktype is not distinct from w.locktype and  
  r.database is not distinct from w.database and  
  r.relation is not distinct from w.relation and  
  r.page is not distinct from w.page and  
  r.tuple is not distinct from w.tuple and  
  r.virtualxid is not distinct from w.virtualxid and  
  r.transactionid is not distinct from w.transactionid and  
  r.classid is not distinct from w.classid and  
  r.objid is not distinct from w.objid and  
  r.objsubid is not distinct from w.objsubid and  
  r.pid > w.pid  
 )  
),  
t_unionall as  
(  
 select r.* from t_overlap r  
 union all  
 select w.* from t_wait w  
)  
select locktype,datname,relation::regclass,page,tuple,virtualxid,transactionid::text,classid::regclass,objid,objsubid,  
string_agg(  
'Pid: '||case when pid is null then 'NULL' else pid::text end||chr(10)||  
'Lock_Granted: '||case when granted is null then 'NULL' else granted::text end||' , Mode: '||case when mode is null then 'NULL' else mode::text end||' , FastPath: '||case when fastpath is null then 'NULL' else fastpath::text end||' , VirtualTransaction: '||case when virtualtransaction is null then 'NULL' else virtualtransaction::text end||' , Session_State: '||case when state is null then 'NULL' else state::text end||chr(10)||  
'Username: '||case when usename is null then 'NULL' else usename::text end||' , Database: '||case when datname is null then 'NULL' else datname::text end||' , Client_Addr: '||case when client_addr is null then 'NULL' else client_addr::text end||' , Client_Port: '||case when client_port is null then 'NULL' else client_port::text end||' , Application_Name: '||case when application_name is null then 'NULL' else application_name::text end||chr(10)||  
'Xact_Start: '||case when xact_start is null then 'NULL' else xact_start::text end||' , Query_Start: '||case when query_start is null then 'NULL' else query_start::text end||' , Xact_Elapse: '||case when (now()-xact_start) is null then 'NULL' else (now()-xact_start)::text end||' , Query_Elapse: '||case when (now()-query_start) is null then 'NULL' else (now()-query_start)::text end||chr(10)||  
'SQL (Current SQL in Transaction): '||chr(10)|| 
case when query is null then 'NULL' else query::text end,  
chr(10)||'--------'||chr(10)  
order by  
 ( case mode  
  when 'INVALID' then 0  
  when 'AccessShareLock' then 1  
  when 'RowShareLock' then 2  
  when 'RowExclusiveLock' then 3  
  when 'ShareUpdateExclusiveLock' then 4  
  when 'ShareLock' then 5  
  when 'ShareRowExclusiveLock' then 6  
  when 'ExclusiveLock' then 7  
  when 'AccessExclusiveLock' then 8  
  else 0  
 end ) desc,  
 (case when granted then 0 else 1 end) 
) as lock_conflict 
from t_unionall  
group by  
locktype,datname,relation,page,tuple,virtualxid,transactionid::text,classid,objid,objsubid ; 

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PostgreSQL 實現登錄及修改密碼操作
  • postgresql表死鎖問題的排查方式
  • 基于postgresql數據庫鎖表問題的解決
  • 基于postgresql行級鎖for update測試
  • Postgresql鎖機制詳解(表鎖和行鎖)
  • postgresql查詢鎖表以及解除鎖表操作
  • PostgreSQL中關閉死鎖進程的方法
  • PostgreSQL用戶登錄失敗自動鎖定的處理方案

標簽:珠海 晉城 錦州 烏海 蚌埠 衡陽 株洲 來賓

巨人網絡通訊聲明:本文標題《Postgresql - 查看鎖表信息的實現》,本文關鍵詞  Postgresql,查看,鎖表,信息,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Postgresql - 查看鎖表信息的實現》相關的同類信息!
  • 本頁收集關于Postgresql - 查看鎖表信息的實現的相關信息資訊供網民參考!
  • 推薦文章
    国产亚洲男人的天堂在线观看| 99色视频在线| 日韩av东京社区男人的天堂| 国产伦理精品| 午夜欧美福利| 成人免费一级纶理片| 欧美激情一区二区三区视频高清| 成人免费观看视频| 日韩一级黄色| 欧美18性精品| 亚久久伊人精品青青草原2020| 久久久久久久网| 毛片的网站| 国产国语对白一级毛片| 午夜在线观看视频免费 成人| 人人干人人草| 99久久精品国产国产毛片| 久久国产影视免费精品| 国产综合成人观看在线| 麻豆网站在线免费观看| 久久成人亚洲| 色综合久久天天综线观看| 美国一区二区三区| 韩国妈妈的朋友在线播放| 日韩avdvd| 日韩一级精品视频在线观看| 精品久久久久久中文字幕一区| 日韩avdvd| 精品视频在线看| 精品视频在线观看视频免费视频| 韩国三级香港三级日本三级| 欧美一区二区三区性| 亚欧视频在线| 精品视频在线观看一区二区| 日日夜人人澡人人澡人人看免| 四虎论坛| 国产伦精品一区三区视频 | 欧美另类videosbestsex高清| 精品视频一区二区三区免费| 青草国产在线观看| 精品国产亚一区二区三区| 一a一级片| 成人免费网站视频ww| 你懂的在线观看视频| 国产成人精品影视| 精品视频在线观看一区二区三区| 久久精品免视看国产成人2021| 国产精品自拍在线观看| 国产一区二区精品久久91| 久久99爰这里有精品国产| 国产综合成人观看在线| 香蕉视频三级| 亚欧成人乱码一区二区| 亚久久伊人精品青青草原2020| 久久国产精品永久免费网站| 日韩男人天堂| 国产高清视频免费观看| 黄视频网站在线观看| 精品国产亚洲一区二区三区| 免费国产在线观看| 99久久精品国产高清一区二区 | 999精品在线| 999精品在线| 欧美a免费| 黄色免费三级| 国产a免费观看| 午夜激情视频在线播放| 一级片片| 日韩在线观看视频黄| 人人干人人草| 精品美女| 亚欧成人乱码一区二区| 欧美激情一区二区三区在线| 亚洲wwwwww| 国产欧美精品| 国产福利免费观看| 成人高清视频在线观看| 亚洲精品影院| 精品久久久久久中文字幕2017| 99热热久久| 欧美激情影院| 国产成人啪精品| 免费毛片播放| 美女免费精品高清毛片在线视| 久久精品成人一区二区三区| 国产伦久视频免费观看 视频| 成人高清视频免费观看| 国产不卡福利| 精品国产一区二区三区精东影业| 免费国产在线观看| 日本在线www| 日韩在线观看免费| 日韩欧美一及在线播放| 免费一级片在线观看| 亚欧成人毛片一区二区三区四区| 国产综合91天堂亚洲国产| 国产一区精品| 国产激情一区二区三区| 日韩专区第一页| 97视频免费在线| 免费一级片在线观看| 一级片免费在线观看视频| 91麻豆精品国产高清在线| 国产成人精品综合| 日韩在线观看免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品视频免费在线| 欧美a级v片不卡在线观看| 国产福利免费观看| 欧美一级视频免费| 国产高清在线精品一区二区 | 成人免费观看网欧美片| 欧美另类videosbestsex视频| 999精品视频在线| 黄视频网站在线观看| 成人影院久久久久久影院| 九九免费高清在线观看视频| 久草免费在线色站| 一本伊大人香蕉高清在线观看| 亚洲第一视频在线播放| 精品在线免费播放| 中文字幕Aⅴ资源网| 国产网站麻豆精品视频| 黄色福利片| 青青久热| 欧美一级视频免费| 久久国产精品只做精品| 美女免费精品高清毛片在线视| 久久成人亚洲| 成人免费观看视频| 精品国产亚一区二区三区| 台湾美女古装一级毛片| 成人免费网站久久久| 一级女性大黄生活片免费| 亚欧成人毛片一区二区三区四区| 国产精品1024永久免费视频| 日本在线不卡免费视频一区| 一级片免费在线观看视频| 久久99这里只有精品国产| 日本在线不卡视频| 国产91精品一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美另类videosbestsex高清| 日本免费区| 亚洲wwwwww| 青青青草影院| 久久精品免视看国产成人2021| 国产精品自拍亚洲| 国产一区二区精品久| 九九精品久久久久久久久| 精品国产三级a| 黄视频网站在线免费观看| 香蕉视频三级| 精品国产香蕉在线播出 | 欧美一级视频免费观看| 999久久狠狠免费精品| 精品国产一区二区三区久久久蜜臀 | 日韩免费在线观看视频| 国产视频一区二区三区四区| 一级女性全黄久久生活片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久精品成人一区二区三区| 成人a大片在线观看| 久草免费资源| 精品久久久久久综合网| 在线观看导航| 精品在线免费播放| 九九九在线视频| 国产不卡在线看| 在线观看成人网 | 久久国产精品自由自在| 国产91视频网| 国产a免费观看| 99久久网站| 久久国产精品只做精品| 国产一区二区精品在线观看| 成人影视在线播放| 一本高清在线| 国产不卡福利| 可以在线看黄的网站| 久久成人亚洲| a级毛片免费观看网站| 亚洲女初尝黑人巨高清在线观看| 免费国产在线观看| 尤物视频网站在线| 欧美日本国产| 日韩男人天堂| 色综合久久天天综合绕观看| 午夜久久网| 精品视频在线看 | 午夜欧美成人久久久久久| 欧美另类videosbestsex视频| 91麻豆国产福利精品| 久久精品大片| 国产亚洲精品aaa大片| 一级毛片视频播放| 久久99中文字幕| 亚洲第一视频在线播放| 91麻豆精品国产片在线观看| 精品久久久久久免费影院|