欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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 - 查看鎖表信息的實現的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    卡通动漫亚洲综合| 一个色在线综合| 久久草av在线| 国产乱了高清露脸对白| 欧美日本一道本在线视频| 亚洲激情av在线| 91一区二区在线| 亚洲区一区二区三| 国产夜色精品一区二区av| 老司机免费视频一区二区| 欧美成人三级伦在线观看| 欧美精品日日鲁夜夜添| 亚洲一级片在线观看| 色婷婷狠狠18禁久久| 欧美日免费三级在线| 亚洲综合精品久久| 亚洲成a人片在线www| 欧美人狂配大交3d怪物一区 | 欧美日韩一区二区区| 色婷婷久久一区二区三区麻豆| 中文字幕在线不卡一区| 99精品视频在线观看| 精品视频1区2区| 亚洲成人激情av| 特大黑人巨人吊xxxx| 日韩一区二区三区视频在线观看| 日本一道高清亚洲日美韩| 亚洲a v网站| 国产欧美日韩亚州综合 | 7777精品伊人久久久大香线蕉的| 亚洲成人三级小说| 中文字幕一区三区久久女搜查官| 欧美大片免费久久精品三p| 国产在线观看一区二区| 人人干在线观看| 亚洲欧美日韩小说| 国产一级免费片| 亚洲精品一区在线观看| 国产不卡一区视频| 在线观看一区不卡| 亚洲成av人片在线| xxxx日本免费| 国产精品久久久久三级| 精品无码av一区二区三区不卡| 这里只有精品视频在线观看| 久久精品国产999大香线蕉| 影音先锋男人看片资源| 亚洲精品国产a| 手机av免费看| 亚洲天堂a在线| 日韩一级视频在线观看| 亚洲国产精品99久久久久久久久| 性色av浪潮av| 久久综合久久综合久久综合| 成人av在线网| 欧美一区二区在线播放| 国产综合久久久久久鬼色| 色8久久精品久久久久久蜜| 免费日韩伦理电影| 紧身裙女教师波多野结衣| 亚洲国产成人porn| 免费看黄色三级| 亚洲综合色网站| 欧美日韩中文字幕视频| 一区二区三区视频在线观看| 97伦伦午夜电影理伦片| 亚洲日本免费电影| mm131美女视频| 亚洲男人天堂av| 亚洲自拍偷拍图| 亚洲综合在线电影| 欧美a在线播放| 亚洲动漫第一页| 亚洲综合视频网站| 日本美女一区二区| 色综合激情久久| 黑人巨大精品欧美一区| 欧美日韩在线免费视频| 国产成人午夜精品5599| 欧美一区二区三区免费观看视频| 不卡大黄网站免费看| 久久奇米777| 香港三日本8a三级少妇三级99| 国产精品每日更新| www.色天使| 亚洲精品欧美激情| 色偷偷www8888| 麻豆精品国产91久久久久久| 欧美亚洲国产一区二区三区| 国产盗摄女厕一区二区三区| 欧美变态凌虐bdsm| 色悠悠在线视频| 亚洲三级在线免费观看| 国产99在线 | 亚洲| 偷拍一区二区三区| 欧美在线免费观看亚洲| 丰满少妇久久久久久久| 亚洲精品在线免费观看视频| 中文字幕一区三区久久女搜查官| 一区二区三区在线视频免费观看| 国产又黄又粗又猛又爽的| 日本欧美一区二区三区乱码 | 色综合久久久久久久久| 国产中文字幕精品| 日韩美女视频一区二区在线观看| 成人免费看片载| 一区二区免费在线| 色综合久久久久综合99| 粉嫩一区二区三区在线看| 久久蜜桃av一区二区天堂| 丰满少妇一区二区三区| 香港成人在线视频| 欧美日韩免费电影| 一个人看的视频www| 亚洲私人黄色宅男| 国产suv精品一区二区68| 国产一区二区调教| 国产视频一区二区在线| 中文字幕有码在线播放| 久久成人av少妇免费| 精品国产露脸精彩对白| 中文字幕成人动漫| 乱一区二区av| xf在线a精品一区二区视频网站| 中文字幕在线观看的网站| 日韩在线播放一区二区| 欧美一区二区国产| 欧美成人三级伦在线观看| 日本大胆欧美人术艺术动态| 日韩免费一区二区| 日本高清www| 久久草av在线| 国产清纯在线一区二区www| 战狼4完整免费观看在线播放版| 国产精品一区二区在线播放| 久久久久久黄色| 国产麻豆a毛片| va亚洲va日韩不卡在线观看| 亚洲人成网站精品片在线观看| 欧美亚洲日本一区| 无码人妻精品一区二区三区99不卡| 亚洲成a天堂v人片| 日韩亚洲欧美高清| 国产精品久久免费观看| 国产美女久久久久| 国产精品久久久久久久久免费相片 | 国产精品系列在线播放| 亚洲国产激情av| 在线免费观看日韩欧美| 国产精品久久久久久亚洲av| 奇米色一区二区三区四区| 欧美tk丨vk视频| 最新日韩免费视频| 91在线国产福利| 午夜一区二区三区在线观看| 日韩欧美三级在线| 无码人中文字幕| 99精品视频免费在线观看| 亚洲国产视频在线| 欧美成人a视频| 国产美女高潮视频| 免费观看一区二区三区| 免费成人深夜小野草| 中文在线一区二区| 欧美天堂一区二区三区| 人妻少妇一区二区| 国产白丝网站精品污在线入口| 亚洲人成网站影音先锋播放| 91精品国产全国免费观看| 精品一区二区三区蜜桃在线| av高清久久久| 日韩电影一区二区三区四区| 国产女主播一区| 欧美三级电影一区| 欧美黄色高清视频| 99精品久久99久久久久| 欧美久久久久免费| 国产又粗又猛又爽视频| 成人国产亚洲欧美成人综合网| 日本一区二区视频在线播放| 五月天视频一区| 国产日韩精品一区| 欧美视频一区在线| 一道本在线观看| 92精品国产成人观看免费| 日韩不卡一区二区三区| 中文字幕av一区二区三区免费看| 欧美亚洲一区三区| аⅴ天堂中文在线网| 永久看看免费大片| 国产另类ts人妖一区二区| 一区二区三区在线免费视频| 26uuu成人网一区二区三区| 在线免费观看视频一区| 欧美三级视频网站| 久久免费精品国产| 成人在线综合网| 免费在线视频一区| 亚洲免费在线播放| 久久久不卡网国产精品一区|