76
76
SELECT percentile_cont(0.1) WITHIN GROUP (ORDER BY total_time) AS percentile
77
77
FROM pg_stat_statements
78
78
)
79
- SELECT DISTINCT ON (pss.queryid)
79
+ SELECT DISTINCT ON (pss.queryid, pg_get_userbyid(pss.userid), pg_database.datname )
80
80
pg_get_userbyid(pss.userid) as user,
81
81
pg_database.datname,
82
82
pss.queryid,
@@ -87,28 +87,28 @@ var (
87
87
pss.blk_write_time / 1000.0 as block_write_seconds_total
88
88
FROM pg_stat_statements pss
89
89
JOIN pg_database ON pg_database.oid = pss.dbid
90
- CROSS JOIN percentiles
90
+ CROSS JOIN percentiles
91
91
WHERE pss.total_time > (SELECT percentile FROM percentiles)
92
- ORDER BY pss.queryid, pss.userid DESC
92
+ ORDER BY pss.queryid, pg_get_userbyid( pss.userid) DESC, pg_database.datname
93
93
LIMIT 100;`
94
94
95
95
// Query is compatible from PostgreSQL 13 and higher versions.
96
- pgStatStatementsNewQuery = `SELECT DISTINCT ON (pss.queryid)
97
- pg_get_userbyid(pss.userid) as user,
98
- pg_database.datname,
96
+ pgStatStatementsNewQuery = `SELECT DISTINCT ON (pss.queryid, pg_get_userbyid(pss.userid), pg_database.datname )
97
+ pg_get_userbyid(pss.userid) AS user,
98
+ pg_database.datname AS database_name ,
99
99
pss.queryid,
100
- pss.calls as calls_total,
101
- pss.total_exec_time / 1000.0 as seconds_total,
102
- pss.rows as rows_total,
103
- pss.blk_read_time / 1000.0 as block_read_seconds_total,
104
- pss.blk_write_time / 1000.0 as block_write_seconds_total
100
+ pss.calls AS calls_total,
101
+ pss.total_exec_time / 1000.0 AS seconds_total,
102
+ pss.rows AS rows_total,
103
+ pss.blk_read_time / 1000.0 AS block_read_seconds_total,
104
+ pss.blk_write_time / 1000.0 AS block_write_seconds_total
105
105
FROM pg_stat_statements pss
106
106
JOIN pg_database ON pg_database.oid = pss.dbid
107
107
JOIN (
108
108
SELECT percentile_cont(0.1) WITHIN GROUP (ORDER BY total_exec_time) AS percentile_val
109
109
FROM pg_stat_statements
110
110
) AS perc ON pss.total_exec_time > perc.percentile_val
111
- ORDER BY pss.queryid, pss.userid DESC
111
+ ORDER BY pss.queryid, pg_get_userbyid( pss.userid) DESC, pg_database.datname
112
112
LIMIT 100;`
113
113
)
114
114
0 commit comments