社区
基础和管理
帖子详情
关于脏数据
happysmhzp
2011-04-13 06:24:20
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行,然后A回滚了事务,即修改被取消了,那么,B读取到的那一行数据就是脏数据
上面这句话正确吗?如果事物A未提交,事物B能读到A所修改的数据吗?
如何判断A,B 是否属于同一个事物?
在PL/SQL 中先删一条数据(没有提交)紧接着在查刚才那条数据是查不到的,既然没有提交为什么会查不到呢?
希望各位能详细回答一下,小弟不胜感激。
...全文
376
15
打赏
收藏
关于脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行,然后A回滚了事务,即修改被取消了,那么,B读取到的那一行数据就是脏数据 上面这句话正确吗?如果事物A未提交,事物B能读到A所修改的数据吗? 如何判断A,B 是否属于同一个事物? 在PL/SQL 中先删一条数据(没有提交)紧接着在查刚才那条数据是查不到的,既然没有提交为什么会查不到呢? 希望各位能详细回答一下,小弟不胜感激。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
c1032176200
2012-10-29
打赏
举报
回复
受教了
VC7777777
2012-08-09
打赏
举报
回复
在A对数据进行写操作的时候,这时候这部分数据在缓冲区有一个备份数据。没有提交的话,是不会改变的,脏数据是提交但是没有保存到磁盘的数据。
minitoy
2011-04-14
打赏
举报
回复
去查下隔离级别和脏读,不可重复读,幻读等现象的关系就明白了.
minitoy
2011-04-14
打赏
举报
回复
这个要看数据库工作在哪个隔离级别.只有在read uncommitted的时候才会出现脏读.
而oracle只支持read committed和read serialization两种,所以不会出现你说的情况.
giant7
2011-04-14
打赏
举报
回复
A没有提交之前,B只能看到行修改之前的数据,这是undo表空间的作用之一:维护数据的一致性.
xiaoyaobihai
2011-04-14
打赏
举报
回复
[Quote=引用 2 楼 upc05070000 的回复:]
楼主首先要弄清楚 事务是为了保证数据完整性的
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据
但是 在A事务中查询的话 查到的都是操作之后的数据
这个很好理解 你开两个sql窗口 在一个里边给一个表insert一条数据 不提交 紧接着select 有数据 但是去另一个sql窗口select 就没有数据
[/Quote]
+1
humanity
2011-04-14
打赏
举报
回复
Oracle 如何设置事务隔离级别去让 B 也看到 A 正在改的那个数据?
BetterMe
2011-04-14
打赏
举报
回复
因为他只是在内存中修改,并没有被持久化
chrisbi
2011-04-14
打赏
举报
回复
没有提交的数据只有自己看得到,并没有update到数据库。
horizonlyhw
2011-04-13
打赏
举报
回复
Q:如果事物A未提交,事物B能读到A所修改的数据吗?
A:当然看不到
Q:如何判断A,B 是否属于同一个事物?
A:这个应该不用判断吧,两次连接 就是属于两个“事物”
Q:在PL/SQL 中先删一条数据(没有提交)紧接着在查刚才那条数据是查不到的,既然没有提交为什么会查不到呢?
A:因为这个是一个“事物”中,例如你在plsql developer中开启另一个窗口,就可以查到了。
chen269015865
2011-04-13
打赏
举报
回复
A没有提交之前,B只能看到行修改之前的数据,这是undo表空间的作用之一:维护数据的一致性.
UPC子夜
2011-04-13
打赏
举报
回复
楼主首先要弄清楚 事务是为了保证数据完整性的
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据
但是 在A事务中查询的话 查到的都是操作之后的数据
这个很好理解 你开两个sql窗口 在一个里边给一个表insert一条数据 不提交 紧接着select 有数据 但是去另一个sql窗口select 就没有数据
cuisea
2011-04-13
打赏
举报
回复
“A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行”,因为A没有提交,B读取的是A修改前的数据。没有提交的数据只有自己能查询到,其他用户是查看不到的。
建议你多看看这方面的资料吧
Oracle数据库 大事务的数据更改对数据库内部的影响
我们知道数据是从磁盘读取到内存中进行更改操作的, 那么当这个SQL执行时间很长,而且修改数据量非常大,由于内存容量大小的原因,可能在事务没有commit 提交的情况下,一些
脏数据
已经写回到了磁盘中。 那么在这种...
关于
脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时...
关于
脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时候,B开始另一个事务,读取了该行,然后A回滚了事务,即修改被取消了,那么,B读取到的那一行数据就是
脏数据
上面...
关于
脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时
关于
脏数据
比如说,有两个用户A,B同时操作数据库,A开始了一个事务,修改了某行,但还未提交,这个时 提问者: lwk2008 发布时间:2014-08-02 浏览:113 回复:0 悬赏:0.0希赛币 ...
【
脏数据
】什么是
脏数据
:
脏数据
的种类、类型
什么是“脏”数据?通俗来说,它是因数据重复录入、共同处理等不规范操作而产生的混乱、无效数据。这些数据不能为企业带来价值,反而会占据存储空间,浪费企业的资源。因此,这些数据被称为“脏”数据,不仅没有价值...
ThreadLocal
脏数据
,线程池场景复现
读了一些资料都说threadLocal有
脏数据
问题,理解了下书上和博客的意思做了个简单的例子,希望对大家理解上有帮助,如果有问题可以指出。问题场景: 1.threadLocal
脏数据
是在线程池的场景会出现,因为threadLocal是...
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章