| INGRES' optimizer technology is no better than ours, and probably worse than
that in Rdb V4.0 (which has some rather unique technology).
INGRES' claim of being "AI-based" is probably to counter ORACLE's "rule-based"
claims. What does ORACLE mean? It means THEY USE NO STATISTICS in making
their decisions. Its completely syntax based, and identical queries worded
in different ways yield different results!
Both INGRES and Rdb/VMS use a combination of rules and statistics about
actual table content to make their optimization decisions. INGRES can,
through manual utilities, maintain more statistics than Rdb, which will
help make better decisions on some of the stranger queries (at the cost
of more DBA effort). Rdb/VMS V4.0 has some interesting technology which
helps it due the right thing during query execution based on actual
execution results, rather than based purely on decisions made at compilation
time.
Hal
Ps: Stored Procedures are more than triggers. Essentially, they are the
ability to store something like SQL Module Language inside the database in
a precompiled form. Some performance benefits (for infrequently executed
queries in particular), but not generally a key factor. In other words,
a nice (but non-standard) feature, but we have plenty of nice features that
INGRES doesn't.
|
| It seems that your customer may perhaps have been swayed into wanting certain
implementation features by an INGRES salesperson?
Isn't the bottom line whether the database performs well enough to meet your
needs, and whether has the functionality (which also includes ease of use,
performance tuning, management, etc.) to meet your needs? Surely, how that
performance and functionality is implemented is unimportant (as long as the
goals are met)?
Also, last time I heard anything about INGRES' optimizer, you had to take the
database down on a regular basis and run a utility to gather new statistics
about the database on which the optimizer could base its decisions, and then
bring the database up again. Have later versions of INGRES moved towards a
more dynamic approach? Rdb/VMS has no such utility; the optimization is
always performed based on the current statistics in the database.
Finally, remember that SQL and RDO are languages that layer on top of Rdb.
It's not the language that does the optimization; it's the database system that
does it. So not only are the 'SQL and RDO optimizers' the same, they are the
identical one -- the Rdb optimizer.
Bryan
|