From: twoflower <standa.kurik@gmail.com>
To: pgsql-performance@postgresql.org
Subject: Query > 1000× slowdown after adding datetime comparison
Date: Mon, 31 Aug 2015 09:09:11 -0700 (MST)
Message-ID: <1441037351126-5864045.post@n5.nabble.com> (raw)
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-performance>
I have the following three tables:
DOCUMENT
id (index)
documenttype
date_last_updated: timestamp(6) (indexed)
EXTERNAL_TRANSLATION_UNIT
id (indexed)
fk_id_document (indexed)
EXTERNAL_TRANSLATION
id (indexed)
fk_id_translation_unit (indexed)
Table sizes:
DOCUMENT: 381 000
EXTERNAL_TRANSLATION_UNIT: 76 000 000
EXTERNAL_TRANSLATION: 76 000 000
Now the following query takes about 36 minutes to finish:
SELECT u.id AS id_external_translation_unit,
r.id AS id_external_translation,
u.fk_id_language AS fk_id_source_language,
r.fk_id_language AS fk_id_target_language,
doc.fk_id_job
FROM "EXTERNAL_TRANSLATION_UNIT" u
JOIN "DOCUMENT" doc ON u.fk_id_document = doc.id
JOIN "EXTERNAL_TRANSLATION" r ON u.id = r.fk_id_translation_unit
WHERE doc.date_last_updated >= date(now() - '171:00:00'::interval)
ORDER BY r.id LIMIT 1000
This is the query plan:
<http://postgresql.nabble.com/file/n5864045/qp1.png;
If I remove the WHERE condition, it returns immediately.
Am I doing something obviously wrong?
Thank you for any ideas.
--
View this message in context: http://postgresql.nabble.com/Query-1000-slowdown-after-adding-datetime-comparison-tp5864045.html
Sent from the PostgreSQL - performance mailing list archive at Nabble.com.
--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: standa.kurik@gmail.com
Subject: Re: Query > 1000× slowdown after adding datetime comparison
In-Reply-To: <1441037351126-5864045.post@n5.nabble.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox