Re: ANSI vs. Non-ANSI
Posted in 1995
> In article <dberg.789147595@cheetah> dberg@informix.com (David I. Berg)
> > writes:
> >Third, the isolation level for applications running against ANSI
> databases
> >defaults to Repeatable Read. This can wreak havoc with concurrency
> >control and lock management. (With Repeatable Read every row selected
> >within a cursor has a shared lock placed on it from the time the first
> such
> >row is fetched until the cursor is closed.)
>
>
> Of course, you can always change the isolation level within your
> application,
> but just wait until the first time someone runs:
> SELECT * FROM sometable;> and then goes to lunmch.
... and of course it's actually worse than that, as the lock is tested
and placed on every row *touched* rather than every row selected.
So,
SELECT * FROM sometable
WHERE keycolumn = somevaluewould have the same effect if by any chance keycolumn wasn't indexed.
The moral of the story is, if you ever do need to use repeatable read for
any reason, be more vigilant than ever on index design.
By the way the thing I found most irritating about mode ANSI is the way
that 'GLOBALS' generates a compile time warning. I usually find a couple
of things I just can't do without globals for (eg. passing flags back
from error handlers kicked in by WHENEVER ERROR). It just kind of ruffles
my karma being unable to get completely clean compilations. GGRRRR!
akent@cix.compulink.co.uk (Andy Kent)
-------------------------------------