Thread: Log Unique Queries without Params?
I have a local script I've written that will scan a log of PG queries to extract out unique queries without any specific parameter data. For example, if these 2 queries are actually run:
SELECT * FROM foo where bar = 1;
SELECT * FROM foo where bar = 2;
It will capture only:
SELECT * FROM foo whee bar = :id;
Are there any existing tools that do this already for me? I'm considering setting up a server that can have logs forwarded to it and only logging unique queries like this, but I don't want to build anything that may already exist out there.
On Sun, Apr 12, 2020 at 6:51 AM Chris Morris <chris@mysteryscience.com> wrote: > > I have a local script I've written that will scan a log of PG queries to extract out unique queries without any specificparameter data. For example, if these 2 queries are actually run: > > SELECT * FROM foo where bar = 1; > SELECT * FROM foo where bar = 2; > > It will capture only: > > SELECT * FROM foo whee bar = :id; > > Are there any existing tools that do this already for me? I'm considering setting up a server that can have logs forwardedto it and only logging unique queries like this, but I don't want to build anything that may already exist out there. pgbadger (http://pgbadger.darold.net/#about) will do that and much more. Depending on what you want to achieve maybe pg_stat_statements (https://www.postgresql.org/docs/current/pgstatstatements.html) is also an alternative.
Thx!
On Sat, Apr 11, 2020 at 11:55 PM Julien Rouhaud <rjuju123@gmail.com> wrote:
On Sun, Apr 12, 2020 at 6:51 AM Chris Morris <chris@mysteryscience.com> wrote:
>
> I have a local script I've written that will scan a log of PG queries to extract out unique queries without any specific parameter data. For example, if these 2 queries are actually run:
>
> SELECT * FROM foo where bar = 1;
> SELECT * FROM foo where bar = 2;
>
> It will capture only:
>
> SELECT * FROM foo whee bar = :id;
>
> Are there any existing tools that do this already for me? I'm considering setting up a server that can have logs forwarded to it and only logging unique queries like this, but I don't want to build anything that may already exist out there.
pgbadger (http://pgbadger.darold.net/#about) will do that and much
more. Depending on what you want to achieve maybe pg_stat_statements
(https://www.postgresql.org/docs/current/pgstatstatements.html) is
also an alternative.
Also try pg_stat_statements, does that on the fly and it will give you very interesting execution stats too.
On Mon, Apr 13, 2020 at 12:37 AM Chris Morris <chris@mysteryscience.com> wrote:
Thx!On Sat, Apr 11, 2020 at 11:55 PM Julien Rouhaud <rjuju123@gmail.com> wrote:On Sun, Apr 12, 2020 at 6:51 AM Chris Morris <chris@mysteryscience.com> wrote:
>
> I have a local script I've written that will scan a log of PG queries to extract out unique queries without any specific parameter data. For example, if these 2 queries are actually run:
>
> SELECT * FROM foo where bar = 1;
> SELECT * FROM foo where bar = 2;
>
> It will capture only:
>
> SELECT * FROM foo whee bar = :id;
>
> Are there any existing tools that do this already for me? I'm considering setting up a server that can have logs forwarded to it and only logging unique queries like this, but I don't want to build anything that may already exist out there.
pgbadger (http://pgbadger.darold.net/#about) will do that and much
more. Depending on what you want to achieve maybe pg_stat_statements
(https://www.postgresql.org/docs/current/pgstatstatements.html) is
also an alternative.