Subject | Re: [Firebird-Architect] RFC: Cross database queries |
---|---|
Author | Jim Starkey |
Post date | 2007-08-08T17:30:04Z |
Adriano dos Santos Fernandes wrote:
different from local queries, isn't this necessary and even desirable?
Nothing says that suitable code from the Firebird engine can't be
reused, but since the existing optimizer and runtime don't quite do what
is necessary to manage network queries, doesn't it make sense to build a
specialized engine?
The basic idea of network optimization is to decompose a complex query
into a set of independent queries to execute at each network node
involved in the query. For efficiency, each of these queries should be
designed to give the remote engine(s) the best possible opportunity for
local optimization.
The Firebird optimizer is essentially cost based. A network optimizer
is generally heuristic based, concerning itself less with the cost of
fetch records from disk than minimizing round trips and the volume of
data transmitted.
anything.
to review it before deciding the metadata isn't important.
> Your "Mega-database manager" is not good than Vlad approach IMO.Your opinion is always valued. Sometime, however, facts count, too.
>
> It will create another "database-engine" in the provider, withYes? And since the process to optimize network queries is quite
> optimizer, parser, executor, etc, etc...
>
different from local queries, isn't this necessary and even desirable?
Nothing says that suitable code from the Firebird engine can't be
reused, but since the existing optimizer and runtime don't quite do what
is necessary to manage network queries, doesn't it make sense to build a
specialized engine?
> It will not allow to optimize joins (and whatever) of differentThat's a strange and interesting assertion. On what is it based?
> databases in the same engine.
>
The basic idea of network optimization is to decompose a complex query
into a set of independent queries to execute at each network node
involved in the query. For efficiency, each of these queries should be
designed to give the remote engine(s) the best possible opportunity for
local optimization.
The Firebird optimizer is essentially cost based. A network optimizer
is generally heuristic based, concerning itself less with the cost of
fetch records from disk than minimizing round trips and the volume of
data transmitted.
> With a good code base, I'm sure we can handle this.Undoubtedly. If you set you standards low enough, you can do almost
>
anything.
> And I don't see big problem with absence of metadata of foreign objects.Perhaps you missed the discussion of metadata and tools. You may want
> AFAIU, Oracle also doesn't store it.
>
>
to review it before deciding the metadata isn't important.