This has been saved for the 8.4 release: http://momjian.postgresql.org/cgi-bin/pgpatches_hold
--------------------------------------------------------------------------- CK Tan wrote: > Hi, > > I am submitting a patch for review that: > > 1. for small relation (smaller than 60% of bufferpool), use the > current logic > 2. for big relation: > - use a ring buffer in heap scan > - pin first 12 pages when scan starts > - on consumption of every 4-page, read and pin the next 4-page > - invalidate used pages of in the scan so they do not force out > other useful pages > > 4 files changed: > bufmgr.c, bufmgr.h, heapam.c, relscan.h > > If there are interests, I can submit another scan patch that returns > N tuples at a time, instead of current one-at-a-time interface. This > improves code locality and further improve performance by another > 10-20%. > > For TPCH 1G tables, we are seeing more than 20% improvement in scans > on the same hardware. > > ------------------------------------------------------------------------ > - > ----- PATCHED VERSION > ------------------------------------------------------------------------ > - > gptest=# select count(*) from lineitem; > count > --------- > 6001215 > (1 row) > > Time: 2117.025 ms > > ------------------------------------------------------------------------ > - > ----- ORIGINAL CVS HEAD VERSION > ------------------------------------------------------------------------ > - > gptest=# select count(*) from lineitem; > count > --------- > 6001215 > (1 row) > > Time: 2722.441 ms > > > Suggestions for improvement are welcome. > > Regards, > -cktan > Greenplum, Inc. > [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 7: You can help support the PostgreSQL project by donating at > > http://www.postgresql.org/about/donate -- Bruce Momjian <[EMAIL PROTECTED]> http://momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match