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