Hi Pavel,
Thanks for the reply.
1. The queries aren’t waiting on any locks.
The query has a recursive join that uses a table with only 80k records and that table is not updated often.
2. The I/O load was not high. CPU utilization was very high and load was very high.
We have a large effective_cache_size = 512GB (25% of total memory)
Thanks,
Jamie
From: Pavel Stehule [mailto:pavel.stehule@xxxxxxxxx]
Sent: Wednesday, October 21, 2015 12:04 AM
To: Jamie Koceniak
Cc: pgsql-performance@xxxxxxxxxxxxxx
Subject: Re: Recursive query performance issue
Hi
2015-10-20 19:34 GMT+02:00 Jamie Koceniak <jkoceniak@xxxxxxxxxxxxx>:
Version:
-----------------------------------------------------------------------------------------------
PostgreSQL 9.1.14 on x86_64-unknown-linux-gnu, compiled by gcc (Debian 4.7.2-5) 4.7.2, 64-bit
Query Plan
http://explain.depesz.com/s/4s37
Normally, this query takes around 200-300 ms to execute.
However when several queries are run concurrently, query performance drops to 30-60 seconds.
there can be few reasons:
1. locking - are you sure, so your queries don't wait on locks?
2. issues with cache stability - is there high IO load? You can try to increase effective_cache_size (or decrease if you have not enough memory)
Regards
Pavel