Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Microsoft destroys TPC-C records!
For the sake of accuracy, it is quite possible to implement a system that will allow for "select sum(balance) from accounts" to run at any point - without being blocked.
However, an inexperienced developer (and God knows there are enough of them out there) can use a server-side cursor with SS7, locate the row, and retrieve the value. Irrespective of the isolation level or cursor-type, this simple action will result in a lock being place - not on the row - but on the index. The blocking behavior results, nonetheless.
The problem can be avoided without resorting to reading uncommitted data. All that is required is to simply retrieve only the data required to perform the current operation into a client-side disconnected recordset. Releasing the cursor clears the index lock, thus eliminating contention.
Mike
"Alexander Penev" <alex_at_cska.net> wrote in message
news:38EF60D7.1F0D2D24_at_cska.net...
> Suppose you are a manager in this bank and want to know "who much money do
we
> actually have NOW?"...
> The query you need is very simply:
> select sum(balance) from accounts;
> Oracle will immediately give you an answer. SQL7 won't!!! You will have to
wait
> untill all transactions are commited or rollback untill you ever get an
answer.
> And what happens if a (or some) cutomer just went away of their house or
their
> browser crashed? You have to wait for a timeout of (I guess) about an
hour. Do
> you think it's good?
Received on Sat Apr 08 2000 - 00:00:00 CDT