From: | Evgeniy Efimkin <efimkin(at)yandex-team(dot)ru> |
---|---|
To: | legrand legrand <legrand_legrand(at)hotmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [survey] New "Stable" QueryId based on normalized query text |
Date: | 2019-08-12 12:52:19 |
Message-ID: | 2915211565614329@vla1-1374b6242101.qloud-c.yandex.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi!
What about adding new column in pg_stat_statements e.g. sql_id it's hash from normalized query. Аnd add function which get that hash (using raw_parser, raw_expression_tree_walker) for any query
`
postgres=# select get_queryid('select 1');
get_queryid
-------------
680388963
(1 row)
`
that function can be used on pg_stat_activity(query) for join pg_stat_statements if it need.
12.08.2019, 14:51, "legrand legrand" <legrand_legrand(at)hotmail(dot)com>:
> Hi Jim,
>
> Its never too later, as nothing has been concluded about that survey ;o)
>
> For information, I thought It would be possible to get a more stable
> QueryId,
> by hashing relation name or fully qualified names.
>
> With the support of Julien Rouhaud, I tested with this kind of code:
>
> case RTE_RELATION:
> if (pgss_queryid_oid)
> {
> APP_JUMB(rte->relid);
> }
> else
> {
> rel = RelationIdGetRelation(rte->relid);
> APP_JUMB_STRING(RelationGetRelationName(rel));
> APP_JUMB_STRING(get_namespace_name(get_rel_namespace(rte->relid)));
> RelationClose(rel);
> {
>
> thinking that 3 hash options would be interesting in pgss:
> 1- actual OID
> 2- relation names only (for databases WITHOUT distinct schemas contaning
> same tables)
> 3- fully qualified names schema.relname (for databases WITH distinct schemas
> contaning same tables)
>
> but performances where quite bad (it was a few month ago, but I remenber
> about a 1-5% decrease).
> I also remenber that's this was not portable between distinct pg versions
> 11/12
> and also not sure it was stable between windows / linux ports ...
>
> So I stopped here ... Maybe its time to test deeper this alternative
> (to get fully qualified names hashes in One call) knowing that such
> transformations
> will have to be done for all objects types (not only relations) ?
>
> I'm ready to continue testing as it seems the less impacting solution to
> keep actual pgss ...
>
> If this doesn't work, then trying with a normalized query text (associated
> with search_path) would be the
> other alternative, but impacts on actual pgss would be higher ...
>
> Regards
> PAscal
>
> --
> Sent from: https://www.postgresql-archive.org/PostgreSQL-hackers-f1928748.html
--------
Efimkin Evgeny
From | Date | Subject | |
---|---|---|---|
Next Message | Julien Rouhaud | 2019-08-12 12:55:23 | Re: [survey] New "Stable" QueryId based on normalized query text |
Previous Message | Jim Finnerty | 2019-08-12 12:40:24 | Re: [survey] New "Stable" QueryId based on normalized query text |