with t1 as (selectsum(calls) n from pg_stat_statements), t2 as (selectsum(calls) n from pg_stat_statements , pg_sleep(1)) select t2.n-t1.n the_num_of_queries_per_second from t1,t2;
2.2 QPS 从服务开启到现在
1 2
SELECTsum(calls) /EXTRACT(EPOCH FROM NOW() - pg_postmaster_start_time()) from pg_stat_statements;
2.4 查询执行次数TOP 10
1 2 3 4 5 6 7 8
SELECT query, calls, total_exec_time, rows, (total_exec_time/calls) as avg_time FROM pg_stat_statements ORDERBY calls DESC LIMIT 10;
2.5 查询耗时TOP 10
1 2 3 4 5 6 7 8
SELECT query, calls, total_exec_time, (total_exec_time/calls) as avg_time, rows FROM pg_stat_statements ORDERBY total_exec_time DESC LIMIT 10;
2.6 查询返回行数TOP 10
1 2 3 4 5 6 7
SELECT query, calls, rows, (rows/calls) as avg_rows FROM pg_stat_statements ORDERBYrowsDESC LIMIT 10;
2.7 缓存命中率低的查询
1 2 3 4 5 6 7 8
SELECT query, shared_blks_hit, shared_blks_read, (shared_blks_hit::float/NULLIF(shared_blks_hit + shared_blks_read, 0)) AS hit_rate FROM pg_stat_statements WHERE (shared_blks_hit + shared_blks_read) >0 ORDERBY hit_rate ASC LIMIT 10;