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