On Wed, Aug 3, 2011 at 3:38 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> On a straight pgbench -S test, you get four system calls per query: >> recvfrom(), lseek(), lseek(), sendto(). Adding -M prepared eliminates >> the two lseeks. > > [ scratches head... ] Two?
Yep. > Is that one for the table and one for its > lone index, or are we being redundant there? The former. Specifically, it appears we're smart enough to only test the last segment (in this case, the table is large enough that there is a .1 file, and that's what we're lseeking). > (If the query ended up being a seqscan, I'd expect a second > lseek(SEEK_END) when the executor starts up, but I gather from the other > complaints that the mosbench people were only testing simple indexscan > queries.) Yeah, it seems that for a sequential scan we lseek the heap, then the index, then the heap again; but for index scans we just hit the heap and the index. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers