Bloor Research on ActiveKnowledge : “Improving On Optimisers”
"Improving on Optimisers", Philip Howard, Bloor Research : "After all
these years you would assume, wouldn’t you, that database optimisers were pretty
good? Companies like IBM and Oracle have been costing query plans and re-writing
SQL not just for years but for decades, so you would expect that they would know
what they were doing.
Well, if that’s the case then how come that ActiveBase and its UK distributor
Application Performance, can making a living out of selling the former’s
ActiveKnowledge product, which has been expressly designed to improve optimiser
performance though, to be fair to IBM, only for Oracle?
ActiveKnowledge acts like what you might describe as a SQL Firewall. That is, it
intercepts all incoming SQL, does various clever things with it, and then passes
it on to the database to process. What, of course, is important is the “clever
things”. So, what are these?
The main “clever thing” that ActiveKnowledge does is to assume that the
optimiser doesn’t know how to calculate costs properly—indeed, that an optimiser
can’t, by definition, calculate costs accurately. The company’s view is that
costs can only ever be estimated and that those estimates will always include
inaccuracies which, in turn, will result in queries running more slowly than
would otherwise be the case.
ActiveBase contends that the only way that you can accurately calculate the
costs of a query are to run the query multiple times using multiple options and
actually find out in practice which is the best way to run a particular query.
This is exactly what the product does: determines multiple execution strategies
and then benchmarks them. For obvious reasons, therefore, the product is most
suitable for environments where you have many queries that are repeated on a
regular basis ... In a nutshell: it is certainly worth considering if you are an
Oracle user"
I've sat through an ActiveKnowledge presentation in the past, which even came
with a customer testimonial which sounded pretty convincing. I've always been
wary of this product though, not so much because I don't think the CBO could be
improved or that it doesn't make mistakes, but because often what these
companies end up selling is what's already in the database in the first place.
Has anyone reading this used ActiveKnowledge, and does it do anything that you
couldn't do with a properly tuned and understood database? Also, whilst I assume
it's aimed at the OLTP market, has anyone tried it with a decision support
application?