X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by postgresql.org (Postfix) with ESMTP id 984E09DC846 for ; Sun, 18 Dec 2005 13:54:06 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 83644-07 for ; Sun, 18 Dec 2005 13:54:04 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey- Received: from smtp.nildram.co.uk (smtp.nildram.co.uk [195.112.4.54]) by postgresql.org (Postfix) with ESMTP id BCD1B9DC851 for ; Sun, 18 Dec 2005 13:53:52 -0400 (AST) Received: from [192.168.0.4] (unknown [84.12.183.55]) by smtp.nildram.co.uk (Postfix) with ESMTP id 3AF3426BF76; Sun, 18 Dec 2005 17:53:25 +0000 (GMT) Subject: Re: Should Oracle outperform PostgreSQL on a complex From: Simon Riggs To: Mark Kirkwood Cc: Tom Lane , Bruce Momjian , =?ISO-8859-1?Q?P=E5l?= Stenslet , pgsql-performance@postgresql.org In-Reply-To: <43A4E08D.2050708@paradise.net.nz> References: <200512170428.jBH4S2W23715@candle.pha.pa.us> <1134810953.2964.117.camel@localhost.localdomain> <8627.1134843222@sss.pgh.pa.us> <43A4E08D.2050708@paradise.net.nz> Content-Type: text/plain Date: Sun, 18 Dec 2005 17:53:27 +0000 Message-Id: <1134928407.2964.177.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.2.3 (2.2.3-2.fc4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, score=0.023 required=5 tests=[AWL=0.023] X-Spam-Score: 0.023 X-Spam-Level: X-Archive-Number: 200512/442 X-Sequence-Number: 16263 On Sun, 2005-12-18 at 17:07 +1300, Mark Kirkwood wrote: > Tom Lane wrote: > > >>2. transform joins into subselects, then return subselect rows via an > >>index bitmap. Joins are performed via a bitmap addition process. > > Looks like 8.1 pretty much does this right now: Good analysis. 8.1 doesn't do: - the transforms sufficiently well (you just performed them manually) - doesn't AND together multiple bitmaps to assist with N-way joins Those aren't criticisms, just observations. Pal's original example was a 9-dimension join, so I think PostgreSQL does very well on making that run in 30 seconds. That's a complex example and I think upholds just how good things are right now. Anyway, back to the starting point: IMHO there is an additional optimisation that can be performed to somehow speed up Single large table-many small table joins. And we have some clues as to how we might do that. Best Regards, Simon Riggs