pg阻塞 + pg_top -- select * from pg_stat_activity where pid= pid; = postgresql 运维常用脚本 杀掉进程 - kill VACUUM full bi_dws_kpi_agency

1.查下超过10 s的查询语句

select 
*
From pg_stat_activity where query_start<=now()- interval'10 sec' and state not in ('idle')
and pid<>pg_backend_pid() and query ilike 'select%'
order by query_start
;

2. 超过10s的查询会被干掉

select 
pg_terminate_backend(pid)
From pg_stat_activity where query_start<=now()- interval'10 sec' and state not in ('idle')
and pid<>pg_backend_pid() and query ilike 'select%'
order by query_start
;

 

3. 查询现在的sql

复制代码

SELECT
pid,
usename,
datname,
query_start,
STATE,
query
FROM
pg_stat_activity
WHERE
query_start >= '2021-08-25 17:46:00'
AND query_start <= '2021-08-25 17:47:50'
AND STATE NOT IN ( 'idle' )
AND pid <> pg_backend_pid ( )
AND query ILIKE'select%'
ORDER BY
query_start;

复制代码

 

wenji发布的那些文档要找时间多看看了

 

5. 查看当前top SQL

1
### 先reset<br><br>select pg_stat_statements_reset();

  

复制代码
SELECT
round(
(
100 * A .total_time / SUM (A .total_time) OVER ()
) :: NUMERIC,
2
) percent,
--a.dbid,
b.datname,
round(A .total_time :: NUMERIC, 2) AS total,
A .calls,
round(A .mean_time :: NUMERIC, 2) AS mean,
A .query
FROM
pg_stat_statements A
INNER JOIN pg_stat_database b ON A .dbid = b.datid
ORDER BY
total_time DESC
LIMIT 5;
复制代码

 

posted @   littlevigra  阅读(471)  评论(16编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-08-10 kubernetes pvc pv 坑
点击右上角即可分享
微信分享提示