【问题标题】:PostgreSQL find locks including the table namePostgreSQL 查找包含表名的锁
【发布时间】:2016-05-09 07:39:04
【问题描述】:

我正在尝试查看正在发生的锁 我的 PostgreSQL 数据库中的特定表。

我看到有一个名为 pg_locks 的表

select * from pg_locks;

这似乎给了我一堆专栏,但有可能吗 找到关系,因为我看到其中一列是 关系oid。

我必须链接哪个表才能获得关系名称?

【问题讨论】:

标签: relational-database postgresql-9.2 database-administration


【解决方案1】:

这是 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());

【讨论】:

    【解决方案2】:

    试试这个:

    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())
    

    【讨论】:

      【解决方案3】:

      如果您只想要 pg_locks 的内容,但要使用人性化的关系名称,

      select relation::regclass, * from pg_locks;
      

      【讨论】:

        【解决方案4】:

        Remy Baron 的回答是正确的 我只是想发布一个我想出来的 也只是因为它更具体地满足我在这种情况下的需要

        select pg_class.relname,
               pg_locks.mode
        from pg_class,
             pg_locks
        where pg_class.oid = pg_locks.relation
        and pg_class.relnamespace >= 2200
        ;
        

        【讨论】:

        • pg_class.relnamespace >= 2200 似乎在这里 2200 是我正在寻找的“神奇”数字,用于从列表中排除不感兴趣的 postgres 内部锁并仅返回用户定义表上的锁。我想知道是否有某种方法可以从 postgres 本身内省这个数字?
        【解决方案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;
        

        【讨论】:

          猜你喜欢
          • 2015-02-27
          • 2017-06-03
          • 1970-01-01
          • 2019-11-06
          • 2013-02-02
          • 2012-12-02
          • 2013-12-20
          • 2022-01-19
          • 2014-08-25
          相关资源
          最近更新 更多