The*_*age 5 database-administration relational-database postgresql-9.2
我正在尝试查看我的 PostgreSQL 数据库中特定表上发生的锁。
我看到有一个表叫 pg_locks
select * from pg_locks;
Run Code Online (Sandbox Code Playgroud)
这似乎给了我一堆列,但是否有可能找到关系,因为我看到其中一个列是关系 oid。
我必须将它链接到哪个表才能获得关系名称?
Chr*_*cki 14
如果您只想要内容pg_locks但具有人类友好的关系名称,
select relation::regclass, * from pg_locks;
Run Code Online (Sandbox Code Playgroud)
Phi*_*der 11
这是 Remy 的查询,针对 Postgres 10 进行了调整:
select nspname, relname, l.*
from pg_locks l
join pg_class c on (relation = c.oid)
join pg_namespace nsp on (c.relnamespace = nsp.oid)
where pid in (select pid
from pg_stat_activity
where datname = current_database()
and query != current_query());
Run Code Online (Sandbox Code Playgroud)
尝试这个 :
select nspname,relname,l.* from pg_locks l join pg_class c on
(relation=c.oid) join pg_namespace nsp on (c.relnamespace=nsp.oid) where
pid in (select procpid from pg_stat_activity where
datname=current_database() and current_query!=current_query())
Run Code Online (Sandbox Code Playgroud)
小智 5
以下命令将给出锁列表:
select t.relname,l.locktype,page,virtualtransaction,pid,mode,granted
from pg_locks l, pg_stat_all_tables t where l.relation=t.relid
order by relation asc;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10650 次 |
| 最近记录: |