pg_stat_statements模塊含義?
- pg_stat_statements模塊提供一種方法追蹤一個服務器所執行的所有 SQL 語句的執行統計信息,可以用於統計數據庫的資源開銷,分析TOP SQL。
- 如下所示表中所代表的字段:f放到
-
-- SQL統計 SELECT userid AS 執行者id , dbid AS 執行數據庫id , query AS 執行的語句 , calls AS 執行次數 , total_time AS 執行總時間, total_time/calls AS 執行平均時間, rows AS 影響的總行數, min_time, max_time, mean_time AS 平均時間 FROM pg_stat_statements
-
- 最耗時的5條數據,最後一列表示命中率,由此我們可以拿出效率慢的sql進行優化。
-
SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;
-
- 各個字段代表的含義信息?
-
最耗時 SQL,單次調用最耗時 SQL TOP 5 select userid::regrole, dbid, query from pg_stat_statements order by mean_time desc limit 5;
-
最耗IO SQL,單次調用最耗IO SQL TOP 5 select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time)/calls desc limit 5;
-
總最耗IO SQL TOP 5 select userid::regrole, dbid, query from pg_stat_statements order by (blk_read_time+blk_write_time) desc limit 5;
-
用戶也可以定期清理歷史的統計信息,通過調用如下SQL select pg_stat_statements_reset();
-
響應時間抖動最嚴重 SQL select userid::regrole, dbid, query from pg_stat_statements order by stddev_time desc limit 5;
-
最耗共享內存 SQL select userid::regrole, dbid, query from pg_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 5;
-
最耗臨時空間 SQL select userid::regrole, dbid, query from pg_stat_statements order by temp_blks_written desc limit 5;
-
重置統計信息 pg_stat_statements是累積的統計,如果要查看某個時間段的統計,需要打快照
- 如何解決了您的問題,歡迎關注我!還希望來JAVA WEB開發交流羣:958923746,有問題歡迎共享,共同提升!