事务隔离级别与锁的关系
事务隔离级别3的情况下,在读的情况下是不可以改写或插入数据的,但oracel独占锁的概念即是在锁住数据的同时可以读数据的,这样的数据不是脏数据?
事务隔离级别与锁是什么关系呢?
请指教,谢谢!
问题点数:20、回复次数:3Top
1 楼zealot_zk(风中追风)回复于 2006-02-02 01:18:35 得分 0
我对你说的“事务隔离级别为3”有点不大清楚,我理解事务隔离级别应该为:读未提交(Read uncommitted),读已提交(Read committed),可重复读(Repeatable read),可串行化(Serializable )这样几个级别。不知道你说的3级是哪一个?
oracle是通过undo_tablespace,来完成读一致性的,它保证oracle可以完成“可串行读”。
Top
2 楼mySession()回复于 2006-02-02 07:57:44 得分 0
我的意思是一个事务中,我用排它锁,锁住表,然后更新一条记录,这时如果可以查询的话读出的数据是没提交的数据,初学Oracle请指教Top
3 楼zealot_zk(风中追风)回复于 2006-02-02 23:12:29 得分 0
你说的这是两种概念,事务的一致性是可以通过锁来实现,但是oracle不是这样做的。oracle是使用undo表空间来保证事务的杜一致性的。也就是每当一个事务要修改数据库中已经存在的记录时,它都会将一个数据副本放到undo表空间中,在事务提交之前,其它的访问请求都去访问这个数据副本这样来保证事务的读一致性。Top




