這篇文章主要介紹“PostgreSQL中怎么在pg_locks和pg_stat_activity兩張基表基礎(chǔ)上創(chuàng)建的視圖”,在日常操作中,相信很多人在PostgreSQL中怎么在pg_locks和pg_stat_activity兩張基表基礎(chǔ)上創(chuàng)建的視圖問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”PostgreSQL中怎么在pg_locks和pg_stat_activity兩張基表基礎(chǔ)上創(chuàng)建的視圖”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、哈密網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
顯示阻塞信息的視圖:
CREATE OR REPLACE VIEW vw_lockinfo AS SELECT blocked_locks.pid AS blocked_pid, blocked_activity.usename AS blocked_user, blocking_locks.pid AS blocking_pid, blocking_activity.usename AS blocking_user, blocked_activity.query AS blocked_statement, blocking_activity.query AS current_statement_in_blocking_process FROM pg_catalog.pg_locks blocked_locks JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid JOIN pg_catalog.pg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid AND blocking_locks.pid != blocked_locks.pid JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid WHERE NOT blocked_locks.GRANTED; [local]:5432 pg12@testdb=# CREATE OR REPLACE VIEW vw_lockinfo pg12@testdb-# AS pg12@testdb-# SELECT blocked_locks.pid AS blocked_pid, pg12@testdb-# blocked_activity.usename AS blocked_user, pg12@testdb-# blocking_locks.pid AS blocking_pid, pg12@testdb-# blocking_activity.usename AS blocking_user, pg12@testdb-# blocked_activity.query AS blocked_statement, pg12@testdb-# blocking_activity.query AS current_statement_in_blocking_process pg12@testdb-# FROM pg_catalog.pg_locks blocked_locks pg12@testdb-# JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid pg12@testdb-# JOIN pg_catalog.pg_locks blocking_locks pg12@testdb-# ON blocking_locks.locktype = blocked_locks.locktype pg12@testdb-# AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE pg12@testdb-# AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation pg12@testdb-# AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page pg12@testdb-# AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple pg12@testdb-# AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid pg12@testdb-# AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid pg12@testdb-# AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid pg12@testdb-# AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid pg12@testdb-# AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid pg12@testdb-# AND blocking_locks.pid != blocked_locks.pid pg12@testdb-# pg12@testdb-# JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid pg12@testdb-# WHERE NOT blocked_locks.GRANTED; CREATE VIEW Time: 131.424 ms [local]:5432 pg12@testdb=# select * from vw_lockinfo; -[ RECORD 1 ]-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------- blocked_pid | 2184 blocked_user | pg12 blocking_pid | 2863 blocking_user | pg12 blocked_statement | update t_lock set id = 1000 where id = 1; current_statement_in_blocking_process | select pid,locktype,relation::regclass,mode,page,tuple,virtualxid,transactionid,virtualtransaction,granted,fastpath from pg_locks where relation='t_lock'::regclass; Time: 21.032 ms
顯示帶有時(shí)間屬性的locks
CREATE OR REPLACE VIEW vw_lockinfo_time AS SELECT a.datname, l.relation::regclass, l.transactionid, l.mode, l.GRANTED, a.usename, a.query, a.query_start, age(now(), a.query_start) AS "age", a.pid FROM pg_stat_activity a JOIN pg_locks l ON l.pid = a.pid ORDER BY a.query_start; [local]:5432 pg12@testdb=# CREATE OR REPLACE VIEW vw_lockinfo_time pg12@testdb-# AS pg12@testdb-# SELECT a.datname, pg12@testdb-# l.relation::regclass, pg12@testdb-# l.transactionid, pg12@testdb-# l.mode, pg12@testdb-# l.GRANTED, pg12@testdb-# a.usename, pg12@testdb-# a.query, pg12@testdb-# a.query_start, pg12@testdb-# age(now(), a.query_start) AS "age", pg12@testdb-# a.pid pg12@testdb-# FROM pg_stat_activity a pg12@testdb-# JOIN pg_locks l ON l.pid = a.pid pg12@testdb-# ORDER BY a.query_start; CREATE VIEW Time: 17.799 ms [local]:5432 pg12@testdb=# select * from vw_lockinfo_time; -[ RECORD 1 ]-+-------------------------------------------------------------------------------- ------------------------------------------------------------------------------------- datname | testdb relation | t_lock transactionid | mode | RowExclusiveLock granted | t usename | pg12 query | select pid,locktype,relation::regclass,mode,page,tuple,virtualxid,transactionid ,virtualtransaction,granted,fastpath from pg_locks where relation='t_lock'::regclass; query_start | 2019-08-13 15:32:23.139886+08 age | 00:11:29.095421 pid | 2863 ...
到此,關(guān)于“PostgreSQL中怎么在pg_locks和pg_stat_activity兩張基表基礎(chǔ)上創(chuàng)建的視圖”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
文章題目:PostgreSQL中怎么在pg_locks和pg_stat_activity兩張基表基礎(chǔ)上創(chuàng)建的視圖
標(biāo)題鏈接:http://jinyejixie.com/article44/pspeee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站制作、App開發(fā)、靜態(tài)網(wǎng)站、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)