Subject | Re: Helen: Low Selectivity Problem |
---|---|
Author | alex_vnru |
Post date | 2002-08-29T10:48:31Z |
--- In ib-support@y..., "Theo Bebekis" <teo@e...> wrote:
Guys, data storage and access model and model of functionality of
your application should be developed mainly by head, not by hands ;)
Spend some time to build for youself model of what you are starting to
develop and how it can progress in the future before you start
developing and need in metadata changes will be significantly reduced.
As it said in my lovest book on system analysis - first point of
investigation in any investigation should be investigation itself.
Inserting/altering data
database ability to defend itself.
trigger on detail table which check exictence of master record. Within
some transaction's context we make insert. Another transaction deleted
master record after our transaction's start. If our transaction is
snapshot, trigger never will see absence of master record even if it
commited. If it is read_commited, it will see delete only if at the
moment of check it is commited. We commit insert, another transaction
commit delete - voila, get inconsistent data.
I think developers of the complex databases for heavy multy-user
environment always use it. Developers of desktop applications can
ignore it nearly painless. Those in the middle make risky design if
they don't use RI, level of this risk is dependent on apllication
nature.
BTW, I can't say low selective FK have high influence on data
changing (except batch-type changes, of course). For select statements
we always can create proper general indices or force natural access in
statement itself. So, we really have another problem - optimizer, who
often is confused when he have a choice even of two indices to use the
best for this particular statement ;))
Best regards, Alexander V.Nevsky.
> > that matter. Lucky? Could be, but I find it far easier to changedata
> > structures, procedures, etc. without having to continually removeand
> > replace constraints while developing. This process works best forme so this
Guys, data storage and access model and model of functionality of
your application should be developed mainly by head, not by hands ;)
Spend some time to build for youself model of what you are starting to
develop and how it can progress in the future before you start
developing and need in metadata changes will be significantly reduced.
As it said in my lovest book on system analysis - first point of
investigation in any investigation should be investigation itself.
Inserting/altering data
> by using an external tool brakes my OID rules for sure. How do Isolve the
> problem? (rhetorical question)Rhetorical answer: using RI ;) which add to properties of your
database ability to defend itself.
> So please, you experienced RDBMS users share your points,The best argument is Ann's post in this thread. Let's say we have BI
> arguments, thoughts with us and let this discussion go in depth
trigger on detail table which check exictence of master record. Within
some transaction's context we make insert. Another transaction deleted
master record after our transaction's start. If our transaction is
snapshot, trigger never will see absence of master record even if it
commited. If it is read_commited, it will see delete only if at the
moment of check it is commited. We commit insert, another transaction
commit delete - voila, get inconsistent data.
> It might be useful also to set up a poll, say "Do you usedeclarative referential integrity?"
I think developers of the complex databases for heavy multy-user
environment always use it. Developers of desktop applications can
ignore it nearly painless. Those in the middle make risky design if
they don't use RI, level of this risk is dependent on apllication
nature.
BTW, I can't say low selective FK have high influence on data
changing (except batch-type changes, of course). For select statements
we always can create proper general indices or force natural access in
statement itself. So, we really have another problem - optimizer, who
often is confused when he have a choice even of two indices to use the
best for this particular statement ;))
Best regards, Alexander V.Nevsky.