RE: Informix versus oracle
Posted in 2003
You are right in what you said as far as it goes in trying to correct, but as I was answering the question as it was stated then apparently my answers are very correct without any additional information. Also, Oracle is not always in a transactional state. It is considered to be for general purposes as was my statement, but to blanket the statement with "always" which means specifically "without any exception" would mean that the DataGuard/Standby servers could not function as the servers are in states of constant recovery. Again, as I was merely answering the question as stated and asking what level he was looking for, then the fact that I left it open with statements such as "generally" should suffice until the requested information is handed over - as well as the fact that he was asking in comparison to Informix, I would think that maybe you ought have tied that point back in somewhere - I did afterall. -----Original Message----- From: Daniel Morgan [SMTP:damorgan@exxesolutions.com] Sent: Saturday, May 31, 2003 2:54 PM To: informix-list@iiug.org Subject: Re: Informix versus oracle Dusty Haas wrote: > I am not sure what you are wanting to know here.... > > If it is a difference between Oracle and Informix on how locking may work, > etc... Not much > > The only real significant difference that I can thik of is that Oracle keep > it read consistant - meaning the rows are still accessible (cannot be > altered, but can be read) without set isolation mode > > The only other major difference may be with begin work - Oracle generally > is is in a transactional state, so begin work statement is not needed. > > If this is what you were looking for, please let me know, or let me know > how in depth you want the answer to be. > > <snipped> A few quick corrections and comments. You are correct that in Oracle rows are 'still accessible' but you are incorrect that they can not be altered. It is possible for multiple users to simultaneously alter a single record in Oracle. Of course this is also possible in just about every other product and is called the 'lost update'. As the chances of that are insignificant in most situations the issue can usually be ignored. But for those circumstances where it is possible Oracle has the FOR UPDATE clause that is used to intentionally lock a record, or records, so that it can not be updated or deleted by another user or process. The FOR UPDATE lock is released with either COMMIT or ROLLBACK. But this lock, as all others, do not block a read. You are also incorrect when you state that Oracle 'generally is in a transaction state'. Oracle is always in a transaction state. There is no need, or syntax, to indicate that a transaction is beginning as the statement INSERT, UPDATE, or DELETE is indication enough for the database engine. -- Daniel Morgan http://www.outreach.washington.edu/extinfo/certprog/oad/oad_crs.asp damorgan@x.washington.edu (replace 'x' with a 'u' to reply)