On Thu, 30 May 2002, Gunther Schadow wrote:
> - Sending a parse tree in XML for processing by the optimizer.
> This circumvents the SQL language and avoids the kinds of
> syntactic ideosyncrasies of SQL (e.g., where you put commas.)
> This is fairly trivial, but of course the question is, would
> it be worth it?
_WHY_? Instead of replacing SQL, learn SQL good enough so you won't need
to. ;)
> - Sending an execution plan in XML directly to the executor.
> This now circumvents the SQL parser and optimizer. I know this
> is in a way against the relational doxology and I don't take that
> light-heartedly. However, isn't it true that most optimizers
> cannot deal very well with more than 6 joins? I may be wrong,
> but I find myself spending quite a bit of time fighting with the
> Oracle or PostgreSQL optimizer to convince it to choose the plan
> that I want. There is so much magic to it with hints and the
> way you write SQL (where in relational theory the expressions are
> equivalent, they make huge difference in what plan is being
> generated.) So, it appears to me almost easier to just send a
> plan directly and have the system execute that plan.
_WHY_? Instead of replacing optimizer, either fix it so magic/hints are
not needed or learn to write better queries ;)
PS: In my experience, optimizer is performing nearly-perfectly, given
regular vacuum analyz'ing.
-alex