EXPLAIN (ANALYZE, BUFFERS) reports bogus temporary buffer reads

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: EXPLAIN (ANALYZE, BUFFERS) reports bogus temporary buffer reads
Date: 2017-10-16 20:59:32
Message-ID: CAEepm=21xgihg=WaG+O5MFotEZfN6kFETpfw+RkSnEqNQqGn2Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers,

Vik Fearing asked off-list why hash joins appear to read slightly more
temporary data than they write. The reason is that we notch up a
phantom block read when we hit the end of each file. Harmless but it
looks a bit weird and it's easily fixed.

Unpatched, a 16 batch hash join reports that we read 30 more blocks
than we wrote (2 per batch after the first, as expected):

Buffers: shared hit=434 read=16234, temp read=5532 written=5502

With the attached patch:

Buffers: shared hit=547 read=16121, temp read=5502 written=5502

--
Thomas Munro
http://www.enterprisedb.com

Attachment Content-Type Size
0001-Don-t-count-EOF-as-a-temporary-buffer-read-in-EXPLAI.patch application/octet-stream 996 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2017-10-16 20:59:59 Re: Is it time to kill support for very old servers?
Previous Message Peter Eisentraut 2017-10-16 20:54:19 Re: coverage analysis improvements