zoukankan      html  css  js  c++  java
  • POSTGRESQL 锁表的问题

    一、找出所的语句

    select
        wait.pid,
        wait.query as wait_query,
        wait.query_start as wait_query_start,
        wait.locktype,
        granted.pid as waitfor_pid,
        granted.relation,
        granted.datname || '.' || d.nspname || '.' || c.relname as name,
        granted.transactionid,
        granted.virtualxid,
        granted.usename,
        granted.client_addr,
        granted.query_start,
        granted.query
    from
        (select
              a.query,
              a.query_start,
              b.pid,
              b.relation,
              b.transactionid,
              b.page,
              b.tuple,
              b.locktype,
              b.virtualxid
         from
              pg_stat_activity a,
              pg_locks b
         where
              a.waiting = 't'
              and a.pid = b.pid
              and granted = 'f'
        ) wait
    join
        (select
            b.pid,
            b.usename,
            b.client_addr,
            b.backend_start,
            b.query_start,
            b.waiting,
            b.query,
            b.datname,
            a.relation,
            a.transactionid,
            a.page,
            a.tuple,
            a.locktype,
            a.virtualxid
        from
            pg_locks a,
            pg_stat_activity b
        where
            a.pid = b.pid
            and a.granted = 't'
        ) granted
    on (
        ( wait.locktype = 'transactionid'
        and granted.locktype = 'transactionid'
        and wait.transactionid = granted.transactionid )
        or
        ( wait.locktype = 'relation'
        and granted.locktype = 'relation'
        and wait.relation = granted.relation
        )
        or
        ( wait.locktype = 'virtualxid'
        and granted.locktype = 'virtualxid'
        and wait.virtualxid = granted.virtualxid )
        or
        ( wait.locktype = 'tuple'
        and granted.locktype = 'tuple'
        and wait.relation = granted.relation
        and wait.page = granted.page
        and wait.tuple = granted.tuple )
    )
    left join
        pg_class c
    on ( c.relfilenode = wait.relation )
    left join
        pg_namespace d
    on ( c.relnamespace = d.oid )
    order by
    granted.query_start
    ;

    二、杀掉依赖的sql

    select pg_terminate_backend(进程id)
  • 相关阅读:
    IIS7配置URL Rewrite链接重写
    wordpress导航菜单的链接支持弹出新页面
    c++绝对是拯救了世界,特别是程序员
    Linux 磁盘坏道检测和修复
    centos里mysql无法用localhost连接的解决方法
    php扩展开发
    IP多播
    因特网的路由选择协议
    ICMP协议
    ARP协议
  • 原文地址:https://www.cnblogs.com/liqiu/p/4079686.html
Copyright © 2011-2022 走看看