On Mon, Feb 17, 2025 at 2:41 PM Ron Johnson <ronljohnso...@gmail.com> wrote:
> On Mon, Feb 17, 2025 at 4:36 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > >> Ron Johnson <ronljohnso...@gmail.com> writes: >> > The bigint "id" column in "mytbl" is populated from a sequence, and so >> is >> > monotonically increasing: the newest records will have the biggest id >> > values. >> > The table also has a bytea column that averages about 100KB. >> >> > Loading 200K rows is more than 200MB. I expected this "prewarm" >> statement >> > to take much longer than 1/2 second. Am I still in the dark ages of >> > computer speed, or is this statement not doing what I hope it's doing? >> >> It's not pulling in the TOAST storage where the bytea column lives. >> (pg_prewarm wouldn't have either, without special pushups.) >> > > Puzzling, since I ran "PERFORM *". What if I explicitly mentioned the > bytea column's name? > > It's more about the system optimizing away data retrieval because you've indicated you don't care about the contents due to using PERFORM. All it needs is a pointer to represent the future data, not the data itself. And PERFORM will never resolve that pointer by itself - so as Tom said your query would need to force pointer resolution by computing on the data. David J.