• 013.PGSQL-查看sql正在运行的进程、查看表是否被锁、解锁表


    1.PGSQL-查看sql正在运行的进程

    SELECT datname,pid,state,query FROM pg_stat_activity where state='active'

    SELECT
        procpid,
        START,
        now() - START AS lap,
        current_query
    FROM
        (
            SELECT
                backendid,
                pg_stat_get_backend_pid (S.backendid) AS procpid,
                pg_stat_get_backend_activity_start (S.backendid) AS START,
                pg_stat_get_backend_activity (S.backendid) AS current_query
            FROM
                (
                    SELECT
                        pg_stat_get_backend_idset () AS backendid
                ) AS S
        ) AS S
    WHERE
        current_query <> '<IDLE>'
    ORDER BY
        lap DESC;

    procpid:进程id
    start:进程开始时间
    lap:经过时间
    current_query:执行中的sql
    怎样停止正在执行的sql
    SELECT pg_cancel_backend(进程id);
    或者用系统函数
    kill -9 进程id;

    2.查看表是否被锁,解锁表

    select oid from pg_class where relname='m_ss_kjcx_tech_inovate_talent' 
    select pid from pg_locks where relation='4384913' 
    --如果查询到了结果,表示该表被锁 则需要释放锁定 
    select pg_cancel_backend(140650678843136)
    -- PGSQL
    select oid from pg_class where relname='m_ss_kjcx_tech_inovate_talent' 
    select pid from pg_locks where relation='4384913' 
    --如果查询到了结果,表示该表被锁 则需要释放锁定 
    select pg_cancel_backend(140650678843136)
    --- 来查看有哪些SQL正在执行。 waiting='t'
    

    select pid,backend_start,application_name,query_start,waiting,state ,query from pg_stat_activity
    where query <>''
    order by query_start asc

    
    通过命令: 
    =# select pg_cancel_backend(线程id); 
    来kill掉指定的SQL语句。(这个函数只能 kill Select 查询,而updae,delete DML不生效)
    使用可以kill 各种DML(SELECT,UPDATE,DELETE,DROP)操作= 
    =# select pg_terminate_backend(pid int)
  • 相关阅读:
    一些程序员可以了解的项目/内容
    为人处世的细节(转自知乎):不炫富, 不哭穷
    centos 6.5 搭建ftp 服务器(vsftpd的配置文件说明)
    linux安装脚本
    Sublime Text3 + Golang搭建开发环境
    go语言环境搭建+sublime text3(windows环境下)
    Enterprise Solution 企业管理软件开发框架
    DotnetSpider爬虫采集博客园
    underscore.js 源码
    Xamarin
  • 原文地址:https://www.cnblogs.com/star521/p/13473616.html
Copyright © 2020-2023  润新知