Re: Random slow queries

From: devel(dot)brain99(at)xoxy(dot)net
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: Random slow queries
Date: 2016-06-29 18:01:38
Message-ID: CACjsgDkTS83P7RYwvCBWveGNUR4aO4TowqEWemJhqz04UTpftA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 29 June 2016 at 14:45, Kevin Grittner <kgrittn(at)gmail(dot)com> wrote:
> Please monitor for the start of such an event and capture the full
> contents of pg_stat_activity and pg_locks during that 2 minute
> window.

I had already looked at that manually and found nothing unusual. To be more
thorough, I now had a batch file log the contents of pg_stat_activity and
pg_locks every 5 seconds.

During my test run, there was one offending query invocation, a simple
SELECT * FROM job WHERE field = $1
Of course the actual query specified the list of fields as it was generated
by Hibernate, but that is what it boils down to - no joins etc. The column on
which was queried is a VARCHAR(64) NOT NULL, not unique nor indexed (though
in practice most values are unique).

I can of course post the full output somewhere if you want (though it's more
than 1000 lines). In the meantime, here is what I can gather from the output
for these 2 minutes:

1) Looking at the logged pg_stat_activity data, there usually is only one
other query executing: the select * from pg_stat_activity itself. Sometimes
there's another query or a connection idle in transaction (which disappears
again in the next output from pg_stat_activity), but given the volume of
queries that's executed this seems expected.

2) Looking at pg_locks, the only locks that are consistently held throughout
those 2 minutes are these 5:
- the locks held by the slow query itself: an AccessShareLock on the job
table, and a virtualxid ExclusiveLock (the query does not happen within a
transaction).
- the advisory lock for the job this thread is processing
- locks held by the SELECT * FROM pg_locks query (a lock on the pg_locks
table and a virtualxid lock)

These 5 locks are of course all granted. Other locks change every 5 seconds,
and often no other locks are held at all.

Best regards,
Roel

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message devel.brain99 2016-06-29 18:04:31 Re: Random slow queries
Previous Message Igor Neyman 2016-06-29 14:32:30 Re: Random slow queries