Thread: pg_stat_statements: can we extend the object names to the qualifiednames?
pg_stat_statements: can we extend the object names to the qualifiednames?
From
Sergei Agalakov
Date:
Hi, It would help to analyze performance issues if pg_stat_statements would extend the object names to the qualified names. Currently if we have two schemas ( say s1 and s2) with the objects with the same name ( say tables t1) then after the next executions: set schema 's1'; select count(*) from t1; // returns 10 set schema 's2'; select count(*) from t1; // returns 1000000000 we see in select queryid, query from pg_stat_statements where query like '%from t1%' something like this 3004391594 select count(*) from t1 1336375111 select count(*) from t1 We do see that the queries are different but we can't see why they are so much different in the execution time. If the pg_stat_statements module would extend the object name to the qualified names like s1.t1 and s2.t2 then we would see the report as 3004391594 select count(*) from s1.t1 1336375111 select count(*) from s2.t1 with an immediate understanding of what's going on. Obviously it would be even bigger help in the situations with the more complex queries where it will be mush more difficult to find that the query was executed with the incorrect search_path settings. Thank you, Sergei Agalakov
Re: pg_stat_statements: can we extend the object names to thequalified names?
From
legrand legrand
Date:
A part of the answer would be to store explain (verbose on) select count(*) from t1; result in pg_stat_statements for the corresponding query... (Verbose On) gives the "qualified names": QUERY PLAN --------------------------------------- Aggregate (cost=19.38..19.39 rows=1 width=8) Output: count(*) -> Seq Scan on s1.t1 (cost=0.00..17.50 rows=750 width=0) Output: a1, a2, a3, a4, a5, a6 Extension pg_store_plans https://github.com/ossc-db/pg_store_plans can do it. Extesion auto_explain can help also. There are also some tryies to extend pg_stat_statements with plans see https://www.postgresql-archive.org/FEATURE-PATCH-pg-stat-statements-with-plans-td5940964.html Regards PAscal -- Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
Re: pg_stat_statements: can we extend the object names to thequalified names?
From
Alvaro Herrera
Date:
On 2018-Nov-27, Sergei Agalakov wrote: > We do see that the queries are different but we can't see why they are so > much different in the execution time. > If the pg_stat_statements module would extend the object name to the > qualified names like s1.t1 and s2.t2 then we would see the report as > 3004391594 select count(*) from s1.t1 > 1336375111 select count(*) from s2.t1 > with an immediate understanding of what's going on. I think this is hard to do in a really useful manner -- if we qualify all names in the query, it becomes mangled to the point that it's no longer easily recognizable (users want to "grep" their applications to see where the queries are). Maybe we can have a second column that shows the query with all object names schema-qualified, keeping the original one that uses the query as entered by the user. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: pg_stat_statements: can we extend the object names to thequalified names?
From
Alvaro Herrera
Date:
On 2018-Nov-27, legrand legrand wrote: > There are also some tryies to extend pg_stat_statements > with plans see > https://www.postgresql-archive.org/FEATURE-PATCH-pg-stat-statements-with-plans-td5940964.html Thread at http://postgr.es/m/9e43fd8f-4d35-4b9d-545c-f9011cd4aa5d@uni-muenster.de -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: pg_stat_statements: can we extend the object names to thequalified names?
From
Sergei Agalakov
Date:
I like it. I don't want to break backward compatibility. The new column could be named like query_qn, and will have here the unambitious text of the query where all the objects names are extended to the qualified names. Sergei Agalakov On 11/27/2018 2:17 PM, Alvaro Herrera wrote: > On 2018-Nov-27, Sergei Agalakov wrote: > >> We do see that the queries are different but we can't see why they are so >> much different in the execution time. >> If the pg_stat_statements module would extend the object name to the >> qualified names like s1.t1 and s2.t2 then we would see the report as >> 3004391594 select count(*) from s1.t1 >> 1336375111 select count(*) from s2.t1 >> with an immediate understanding of what's going on. > I think this is hard to do in a really useful manner -- if we qualify > all names in the query, it becomes mangled to the point that it's no > longer easily recognizable (users want to "grep" their applications to > see where the queries are). Maybe we can have a second column that > shows the query with all object names schema-qualified, keeping the > original one that uses the query as entered by the user. >
Re: pg_stat_statements: can we extend the object names to thequalified names?
From
Sergei Agalakov
Date:
I don't agree. If we already had a column with the execution plan in the pg_stat_statements then it would be a workaround for the problem with the ambiguous names in the query text column. But we don't have such column, and I don't want to create a dependency on the unimplemented feature. I rather fancy an extra column query_qn with the query text where all the object names are substituted to the qualified names. Remember that this problem isn't about only table names. The query may have views, functions, operands etc. from the 'wrong' schema. Sergei Agalakov On 11/27/2018 2:10 PM, legrand legrand wrote: > A part of the answer would be to store > explain (verbose on) select count(*) from t1; > result in pg_stat_statements for the corresponding query... > > (Verbose On) gives the "qualified names": > > QUERY PLAN > --------------------------------------- > Aggregate (cost=19.38..19.39 rows=1 width=8) > Output: count(*) > -> Seq Scan on s1.t1 (cost=0.00..17.50 rows=750 width=0) > Output: a1, a2, a3, a4, a5, a6 > > > Extension pg_store_plans > https://github.com/ossc-db/pg_store_plans > can do it. > > Extesion auto_explain can help also. > > There are also some tryies to extend pg_stat_statements > with plans see > https://www.postgresql-archive.org/FEATURE-PATCH-pg-stat-statements-with-plans-td5940964.html > > Regards > PAscal > > > > > > > -- > Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html >