您的位置:首页 > 数据库

postgresql 查看系统中的锁信息与锁资源

2017-09-01 17:26 288 查看
http://blog.csdn.net/rudygao/article/details/49334001

SELECT locker.pid,  

        pc.relname,  

        locker.mode,  

        locker_act.application_name,  

        least(query_start,xact_start) start_time,  

        locker_act.state,  

        CASE  

    WHEN granted='f' THEN  

    'wait_lock'  

    WHEN granted='t' THEN  

    'get_lock'  

    END lock_satus,current_timestamp - least(query_start,xact_start) AS runtime,  

    locker_act.query  

FROM pg_locks locker,pg_stat_activity locker_act, pg_class pc  

WHERE locker.pid=locker_act.pid  

        AND NOT locker.pid=pg_backend_pid()  

        AND application_name<>'pg_statsinfod'  

        AND locker.relation = pc.oid  

        AND pc.reltype<>0 --and pc.relname='t'  

ORDER BY  runtime desc; 

kill有两种方式,第一种是:

SELECT pg_cancel_backend(PID);

这种方式只能kill select查询,对update、delete 及DML不生效)

第二种是:

SELECT pg_terminate_backend(PID);

这种可以kill掉各种操作(select、update、delete、drop等)操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: