首页 > 其他分享 >【PG】pg_stat_statements

【PG】pg_stat_statements

时间:2024-03-03 11:55:06浏览次数:23  
标签:datname stat statements database dbid PG pg



create extension pg_stat_statements;


show shared_preload_libraries;

Useful commands


-- Flush data from pg_stat_statements:
> pg_stat_statements_reset() function will reset data from pg_stat_statements table.


-- To flush data of a particular database:( feature  available from postgres 12 onwards only)

-- Find the dbid for the database 
 select pg_stat_statements.dbid,datname,count(*) from pg_stat_statements join 
pg_database on pg_stat_statements.dbid=pg_database.oid  group by  pg_stat_statements.dbid,datname;
 dbid  | datname  | count
-------+----------+-------
 15846  | edb      |     3
 15845 | postgres |    18  <<<<<<<<<<<<<<<<<<<<<<<<<<
(2 rows)


 select pg_stat_statements_reset(0, 15845, 0);
pg_stat_statements_reset
--------------------------
(1 row)


-- To flush a particular query:( Available from postgres 12 onwards only)

-- Find the queryid 
select userid::regrole, dbid, queryid,query  from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 10;
	    limit 10;
-[ RECORD 1 ]------+---

userid             | enterprisedb
dbid               | 15846
queryid            | 123573657  <<<<<<<<<<<<<<<<<<<<<<<<<<<<
query              | insert into test select  * from test
-[ RECORD 2 ]------+-----

select pg_stat_statements_reset(0, 0, 123573657);
pg_stat_statements_reset
--------------------------

(1 row)






-- Monitoring using pg_stat_statements:
SELECT  substring(query, 1, 50) AS query,
round(total_time::numeric, 2) AS total_time,
calls,
round(mean_time::numeric, 2) AS mean,
round((100 * total_time /
sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu
FROM    pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;


                    query.                          | total_time | calls | mean | percentage_cpu
----------------------------------------------------+------------+-------+------+----------------
 select * from pg_stat_statements                   |       0.85 |     1 | 0.85 |          38.77
 SELECT e.extname AS "Name", e.extversion AS "Versi |       0.55 |     1 | 0.55 |          24.95
 WITH released_messages AS ( UPDATE sys.callback_qu |       0.17 |     2 | 0.08 |           7.57
 WITH released_messages AS ( UPDATE sys.callback_qu |       0.16 |     2 | 0.08 |           7.11
 show shared_preload_libraries                      |       0.10 |     1 | 0.10 |           4.56
 WITH released_messages AS ( UPDATE sys.callback_qu |       0.09 |     2 | 0.04 |           3.87
 WITH messages AS ( SELECT msgid   FROM sys.callbac |       0.04 |     2 | 0.02 |           1.71
 DELETE FROM sys.callback_queue_table qt  WHERE qt. |       0.04 |     2 | 0.02 |           1.60
 SELECT MIN(qt.next_event_time)   FROM sys.callback |       0.04 |     2 | 0.02 |           1.67

-- sql queries having high i/o activity
 select userid::regrole, dbid, query,queryid,mean_time/1000 as mean_time_seconds 
    from pg_stat_statements
    order by (blk_read_time+blk_write_time) desc
    limit 10;

-- Top time consuming queries
 select userid::regrole, dbid, query ,calls, total_time/1000 as total_time_seconds ,min_time/1000 as min_time_seconds,max_time/1000 as max_time_seconds,mean_time/1000 as mean_time_seconds
    from pg_stat_statements
    order by mean_time desc
    limit 10;
-[ RECORD 1 ]------+----

userid             | enterprisedb
dbid               | 15846
query              | insert into test select  * from test
calls              | 9
total_time_seconds | 2.722928186
min_time_seconds   | 0.003885998
max_time_seconds   | 1.395848226
mean_time_seconds  | 0.302547576222222
-[ RECORD 2 ]------+--------

userid             | enterprisedb
dbid               | 15846
query              | insert into test select  * from pg_tables
calls              | 5
total_time_seconds | 0.003757356
min_time_seconds   | 0.00065117
max_time_seconds   | 0.001032883
mean_time_seconds  | 0.0007514712	


-- with high memory usage:
select userid::regrole, dbid, queryid,query  from pg_stat_statements 
            order by (shared_blks_hit+shared_blks_dirtied) desc limit 10;

标签:datname,stat,statements,database,dbid,PG,pg
From: https://www.cnblogs.com/Jeona/p/18049790

相关文章

  • 【PG】查询 正在vacuum对象的(持续)时间
    --https://dataegret.com/2017/10/deep-dive-into-postgres-stats-pg_stat_progress_vacuum/SELECTp.pid,now()-a.xact_startASduration,coalesce(wait_event_type||'.'||wait_event,'f')ASwaiting,CASEWHENa.query~*'^autovacuum......
  • 【PG】autovacuum vs vacuum
    selectrelname,relpages,reltuplesfrompg_classwhererelname='t1';--清除【每个块】的deadtuples,且不会将块的【位置】进行重组,不会更新表page的信息vacuumt1;analyzet1;explain(analyze,buffers)selectcount(1)fromt1;--vacuumfull清除【每个块】的dead......
  • C++static 存储类
    1#include<iostream>23//函数声明4voidfunc(void);56intmain()7{8intcount=10;9while(count--)10{11func();12std::cout<<",变量count为"<<count<<std::endl;13......
  • 基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
    1.算法运行效果图预览 将测试结果导入到matlab显示   2.算法运行软件版本vivado2019.2,matlab2022a 3.算法理论概述      小波变换是一种在信号处理中广泛应用的数学工具,它能够提供信号在不同尺度和位置上的信息。在图像处理、数据压缩、噪声消除等领域,小......
  • VMware Workstation 17.5.1 Pro for Windows & Linux - 适用于 Windows 和 Linux 的桌
    VMwareWorkstation17.5.1ProforWindows&Linux-适用于Windows和Linux的桌面虚拟化软件基于x86的Windows、Linux桌面虚拟化软件请访问原文链接:https://sysin.org/blog/vmware-workstation-17/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org桌面Hype......
  • Using the HEC-RAS Controller to Add Station-Elevation Data From A Spreadsheet使
    by PaigeBrueWhenIammanipulatingstation-elevationdataforHEC-RAS,IoftendothisinMicrosoftExcel.However,itcanbetedioustocopyandpastedataforeachcross-sectionintotheGeometricDataEditor.当我为HEC-RAS操作桩号高程数据时,我经常在Micr......
  • PGSQL_数字转换成字符串去尾0
    应用场景当前钢板存储厚度,字段是numeric(20,2)类型;型材存储规格,字段是varchar(50)类型。现在做拼接,若钢板类型就是名称厚度,若型材类型就是名称规格。根据拼接的数据做过滤,即对名称厚度(名称规格)做过滤。实现举例例如表中有两条数据:名称(name)=钢板一号,厚度(thick)=100.0......
  • NVME FPGA IP测试记录
    这里涉及商业IP的部分文字资料,如有侵权,请联系删除。当前只说明基础测试,更多测试待后续更新。NVMEHOSTIPIP特性范例截图ZCU106测试使用ZCU106HPC0接口+FMCDriveNVME接口子卡,NVME使用三星980测试日志EnteringMainStartinginitialization...Expecting1dr......
  • 假期vue学习笔记15 求和mapstate_mapgetter
     importVuefrom'vue'importAppfrom'./App.vue'importstorefrom'./store'Vue.config.productionTip=falsenewVue({  el:'#root',  render:h=>h(App),  store,  beforeCreate(){    Vue.......
  • mpstat,stress Linux系统调优工具
    mpstat,stressLinux系统调优工具当我们在处理复杂的系统调优工作时,我们需要使用一些专门的工具来帮助我们分析系统的性能和稳定性。在Linux系统中,mpstat和stress是两个非常常用的工具,它们分别用于监测系统的性能和模拟系统的高负载情况。本篇博客将对mpstat和stress这两个工具进......