PG-147: Store top query, instead of parent query.
parent
6aa1b2e7b6
commit
cabab69b76
|
@ -352,41 +352,34 @@ postgres=# SELECT bucket, substr(query,0, 50) AS query, cmd_type FROM pg_stat_mo
|
|||
|
||||
#### Function Execution Tracking
|
||||
|
||||
**`parentid`**: Outer layer caller's query id.
|
||||
**`top_queryid`**: Outer layer caller's query id.
|
||||
|
||||
```sql
|
||||
postgres=# select prosrc from pg_proc where proname = 'getnum';
|
||||
prosrc
|
||||
--------------------------------
|
||||
select * from t1 where a >= $1
|
||||
CREATE OR REPLACE FUNCTION add(int, int) RETURNS INTEGER AS
|
||||
$$
|
||||
BEGIN
|
||||
return (select $1 + $2);
|
||||
END; $$ language plpgsql;
|
||||
|
||||
|
||||
CREATE OR REPLACE function add2(int, int) RETURNS int as
|
||||
$$
|
||||
BEGIN
|
||||
return add($1,$2);
|
||||
END;
|
||||
$$ language plpgsql;
|
||||
|
||||
SELECT add2(1,2);
|
||||
sub
|
||||
-----
|
||||
3
|
||||
(1 row)
|
||||
|
||||
postgresr=# select pg_stat_monitor_reset();
|
||||
pg_stat_monitor_reset
|
||||
-----------------------
|
||||
|
||||
(1 row)
|
||||
|
||||
postgres=# select prosrc from pg_proc where proname = 'getnum';
|
||||
prosrc
|
||||
--------------------------------
|
||||
select * from t1 where a >= $1
|
||||
(1 row)
|
||||
|
||||
postgres=# select * from getnum(2);
|
||||
a
|
||||
---
|
||||
2
|
||||
3
|
||||
4
|
||||
postgres=# SELECT queryid, top_queryid, query, top_query FROM pg_stat_monitor;
|
||||
queryid | top_queryid | query | top_query
|
||||
------------------+------------------+--------------------------------------------------------------------------------------------------------------------+-------------------
|
||||
3408CA84B2353094 | | select add2($1,$2) |
|
||||
2BAB410CC448CE8D | 3408CA84B2353094 | SELECT add($1,$2) | select add2($1,$2)
|
||||
762B99349F6C7F31 | 3408CA84B2353094 | SELECT (select $1 + $2) | select add2($1,$2)
|
||||
(3 rows)
|
||||
|
||||
postgres=# select queryid,parentid,query,calls from pg_stat_monitor;
|
||||
queryid | parentid | query | calls
|
||||
------------------+------------------+-----------------------------------------------+-------
|
||||
3FEC80684AFE7FC7 | DD2A4843140299C2 | select * from t1 where a >= $1 | 1
|
||||
6ED05FFB78DD52FA | | select pg_stat_monitor_reset() | 1
|
||||
DD2A4843140299C2 | | select * from getnum($1) | 1
|
||||
42517D48FB98ACF7 | | select prosrc from pg_proc where proname = $1 | 1
|
||||
(4 rows)
|
||||
```
|
||||
|
|
|
@ -31,7 +31,7 @@ CREATE FUNCTION pg_stat_monitor(IN showtext boolean,
|
|||
OUT client_ip int8,
|
||||
|
||||
OUT queryid text,
|
||||
OUT parentid text,
|
||||
OUT top_queryid text,
|
||||
OUT query text,
|
||||
OUT application_name text,
|
||||
OUT relations text,
|
||||
|
@ -126,9 +126,9 @@ CREATE VIEW pg_stat_monitor AS SELECT
|
|||
datname,
|
||||
'0.0.0.0'::inet + client_ip AS client_ip,
|
||||
queryid,
|
||||
parentid,
|
||||
top_queryid,
|
||||
query,
|
||||
(SELECT query from pg_stat_monitor(true) s where s.queryid = p.parentid) AS parent_query,
|
||||
(SELECT query from pg_stat_monitor(true) s where s.queryid = p.top_queryid) AS top_query,
|
||||
application_name,
|
||||
string_to_array(relations, ',') AS relations,
|
||||
cmd_type,
|
||||
|
|
Loading…
Reference in New Issue