RE: Bitmap Heap Scan taking ~60x as long for table when queried as partition

From: Stephen Froehlich <s(dot)froehlich(at)cablelabs(dot)com>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, "pgsql-novice(at)postgresql(dot)org" <pgsql-novice(at)postgresql(dot)org>
Subject: RE: Bitmap Heap Scan taking ~60x as long for table when queried as partition
Date: 2018-02-15 15:55:02
Message-ID: CY1PR0601MB1927D4FCE39F792717489B56E5F40@CY1PR0601MB1927.namprd06.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi Laurenz,

Some of the partition scans are quick (those with nothing to return), but my point is that the scan PER TABLE is significantly slower than if I call the hypertable than if I call the table directly. THIS SHOULDN'T BE THE CASE. Most tables are scanned quickly and return nothing.

There IS a combined index on client_ip_md5, start_time ... its my primary key for all of these tables.

Also, the scans are typically parallelized (go back in the thread to the original excerpt), the only reason why not this time is that the server was busy with a backup. Its still much slower when calling the hypertable than the table directly. The parallelization is usually my first clue that an index scan is not being used but instead a heap scan.

--Stephen

-----Original Message-----
From: Laurenz Albe [mailto:laurenz(dot)albe(at)cybertec(dot)at]
Sent: Wednesday, February 14, 2018 11:00 PM
To: Stephen Froehlich <s(dot)froehlich(at)cablelabs(dot)com>; pgsql-novice(at)postgresql(dot)org
Subject: Re: Bitmap Heap Scan taking ~60x as long for table when queried as partition

Stephen Froehlich wrote:
> It took me until this morning to get the EXPLAIN ANALYZE running.
> Note that it is a fair amount slower today because I'm in the midst of
> a pg_dump for the database in question, but the proportions should be there:

That query has to scan all 122 partitions to get its result.
This cannot be avoided, because there are matching rows in many partitions.
Partitioning doesn't help if all partitions have to be scanned.

I notice that there is no parallelization - having several workers scan partitions in parallel should help.

You could create a combined index on (client_ip_md5, start_time), that might speed up the index scans.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Laurenz Albe 2018-02-15 20:58:37 Re: Bitmap Heap Scan taking ~60x as long for table when queried as partition
Previous Message Laurenz Albe 2018-02-15 06:00:02 Re: Bitmap Heap Scan taking ~60x as long for table when queried as partition