Subject | Re: [Firebird-Architect] Cross database queries: Requirements |
---|---|
Author | Fred Polizo |
Post date | 2007-08-11T00:16:55Z |
On 08/09/2007 12:08 PM, Adriano dos Santos Fernandes wrote:
to manage local-to-remote dependencies, depending on the
schema objects involved. Oracle's distributed database
functionality extends beyond just remote tables. It also
supports remote views, remote sequences, remote
functions/procedures/packages, and more. For example, a local
trigger (or stored procedure) can call a remote stored procedure.
The timestamp checking dependency model is the default for
stored procedures/functions/packages. But, the user has the
option of using the "signature" checking dependency model
where the referenced remote procedure/function/package's
signature (name, parameter info [number, type, mode], return
type, etc.) is checked instead of its timestamp. The timestamp
model is more strict than the signature model. The signature
model avoids unnecessary local invalidations and recompiles at
runtime, after a referenced remote procedure's implementation
has changed, but its signature has not.
Basically, when a "procedure" is compiled, its timestamp and
its signature become part of its compiled state in the local
dictionary. If the local procedure references a remote
procedure, then the referenced remote procedure's signature
and timestamp are retrieved and recorded in the compiled state
of the local procedure. Either value may be used later, since
different user sessions can chose different dependency
checking models.
Fred P.
> AFAIR, Oracle stores only a timestamp of the original object, and theThat's the general idea, but Oracle uses different mechanisms
> timestamp is also in the original database.
>
> If timestamp of object (in "client" and "server" databases of dblink)
> are different, the procedure/trigger are compiled again when executed,
> and if necessary invalidated.
>
> Adriano
to manage local-to-remote dependencies, depending on the
schema objects involved. Oracle's distributed database
functionality extends beyond just remote tables. It also
supports remote views, remote sequences, remote
functions/procedures/packages, and more. For example, a local
trigger (or stored procedure) can call a remote stored procedure.
The timestamp checking dependency model is the default for
stored procedures/functions/packages. But, the user has the
option of using the "signature" checking dependency model
where the referenced remote procedure/function/package's
signature (name, parameter info [number, type, mode], return
type, etc.) is checked instead of its timestamp. The timestamp
model is more strict than the signature model. The signature
model avoids unnecessary local invalidations and recompiles at
runtime, after a referenced remote procedure's implementation
has changed, but its signature has not.
Basically, when a "procedure" is compiled, its timestamp and
its signature become part of its compiled state in the local
dictionary. If the local procedure references a remote
procedure, then the referenced remote procedure's signature
and timestamp are retrieved and recorded in the compiled state
of the local procedure. Either value may be used later, since
different user sessions can chose different dependency
checking models.
Fred P.