PG数据库如何检查top事务

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PG数据库如何检查top事务

一 检查长事务的top5

select 

     to_char(now(),'yyyy-mm-dd hh24:mi:ss') "time"

    ,a.datname "datname(数据库名)"

    ,a.pid "pid(进程id)"

    ,b.rolname "username(用户名)"

    --,a.application_name "app_name(应用名称)"

    ,a.client_addr "client_ip(客户端ip)"

    --,a.xact_start "xact_start(当前事务开始时间)"

    --,a.query_start "query_start(当前查询开始时间)"

    ,to_char(a.state_change,'yyyy-mm-dd hh24:mi:ss') "state_change(状态变化时间)"

    --,a.state "state(状态)"

    --,a.query "sql(执行的sql)"

    --,a.backend_type "backend_type(后端类型)"

from pg_stat_activity a

inner join pg_roles b 

on (a.usesysid = b.oid)

where a.state in ('idle in transaction','idle in transaction (aborted)')

    and state_change < current_timestamp - interval '30 min'

order by current_timestamp-state_change desc

limit 5;



正常不存在长事务,异常处理查杀会话。

select pg_terminate_backend(pid);

二 检查慢sql的top5

select 

     to_char(now(),'yyyy-mm-dd hh24:mi:ss') "time"

    ,a.datname "datname(数据库名)"

    ,a.pid "pid(进程id)"

    ,b.rolname "username(用户名)"

    --,a.application_name "app_name(应用名称)"

    ,a.client_addr "client_ip(客户端ip)"

    --,a.query_start "query_start(当前查询开始时间)"

    ,to_char(a.state_change,'yyyy-mm-dd hh24:mi:ss') "state_change(状态变化时间)"

    --,a.wait_event_type "wait_event_type(等待类型)"

    --,a.wait_event "wait_event(等待事件)"

    --,a.state "state(状态)"

    --,a.query "sql(执行的sql)"

    --,a.backend_type "backend_type(后端类型)"

from pg_stat_activity a

left join pg_roles b 

on (a.usesysid = b.oid)

where a.state = 'active'

    and state_change < current_timestamp - interval '1 hour'

    and a.datname is not null

order by current_timestamp-state_change desc 

limit 5;



正常不存在慢sql。异常处理先分析原因,有针对性地查杀连接。

select pg_terminate_backend(pid);


三 注意

进入对应的库做查询

'30 min'表示运行30分钟的长事务或慢查询,可以改成对应的时间。如1小时('1 hour'),1分钟('1 min'),1秒('1 sec')。

--,后面的具体字段值可以根据需要放出来





PG数据库如何检查top事务

一 检查长事务的top5select to_char(now(),&#39;yyyy-mm-dd hh24:mi:ss&#39;) "time" ,a.datname "datname(数据库名)" ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息