Subject Re: [ib-support] IB4 vs FB speed
Author Ivan Prenosil
> From: Paul Reeves
> The query optimiser was certainly changed. Some might say for the worse. The
> main improvement, introduced in v5, was the handling of SQL-92 JOIN
> statements. Previously you had to do joins using the WHERE clause to get
> reasonable performance. So unless you have been a stickler for SQL-92
> conformance you will not be using JOINs anyway.

From SQL point of view handling JOINs was improved.
From users/developers point of view I am not so sure.
In IB5,IB6, both old and new join syntaxes behave the same,
leaving proper "optimization" on optimizer.
In IB4 you had the _choice_ - let optimizer pick "optimal" plan for you
by using old join syntax, or choose best plan by hand, using new join syntax.

Perhaps I am not clear - I do _not_ like choosing proper plan
by using new/old syntax, but I also do not like situation that IB5 got rid
of possibility to simply influence the plan (PLAN clause it unusable),
_without_ properly fixing the optimizer.

Of course leaving everything on optimizer would be ideal, but ...
how many times optimizer uses bad plan
- because of bugs in it ? (of course it should be fixed)
- because of unusual distribution of values (much harder to detect)
- because of distinct requirements of applications, classic example
is requirement for short time to get all records vs. to get first record
(impossible to detect, at least from SQL syntax)
how many applications really depend on changing data distribution
during its life time ? IMHO in _most_ applications developer can know
the best plan in advance (by the nature of application),
or find it out by few experiments.


Ivan
http://www.volny.cz/iprenosil/interbase