楼主: 超级野人

关于update运行机制的疑问?

[复制链接]
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
31#
发表于 2006-4-7 23:56 | 只看该作者
大师,如果单独查询v$transaction , 某条记录的used_ublk 出现负值,代表什么含义呢?!谢谢

使用道具 举报

回复
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
32#
 楼主| 发表于 2006-4-29 16:58 | 只看该作者
那以下这两句话是对还是错呢:
# Readers of data do not wait for writers of the same data rows.

# Writers of data do not wait for readers of the same data rows unless SELECT... FOR UPDATE is used, which specifically requests a lock for the reader.

如果读操作不许等待写操作,那么如何保证读出来的数据没有包含哪些正在被写操作修改的数据呢。

使用道具 举报

回复
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
33#
 楼主| 发表于 2006-4-29 17:14 | 只看该作者
另外我想问一下,在oracle中update的过程是不是先坐delete操作,把原纪录删除(整条记录),然后再做insert操作,插入更新后的数据(整条插入)???那么sqlsever是这样的么!?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
34#
发表于 2006-4-29 17:49 | 只看该作者
最初由 超级野人 发布
[B]那以下这两句话是对还是错呢:
# Readers of data do not wait for writers of the same data rows.

# Writers of data do not wait for readers of the same data rows unless SELECT... FOR UPDATE is used, which specifically requests a lock for the reader.

如果读操作不许等待写操作,那么如何保证读出来的数据没有包含哪些正在被写操作修改的数据呢。 [/B]



这个概念是建立在 更高一个级别的读这个层面上的

对于buffer 而言,读和写的访问总是相互排斥的,同一时刻总是只有一个进程在处理! 如果buffer已经被修改过,进程读到的时候自然会根据ITL信息去决定是否需要到回滚段中找变化前的数据。

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
35#
发表于 2006-4-30 08:40 | 只看该作者
最初由 超级野人 发布
[B]那以下这两句话是对还是错呢:
# Readers of data do not wait for writers of the same data rows.

# Writers of data do not wait for readers of the same data rows unless SELECT... FOR UPDATE is used, which specifically requests a lock for the reader.

如果读操作不许等待写操作,那么如何保证读出来的数据没有包含哪些正在被写操作修改的数据呢。 [/B]


看一看concepts中的读一致性

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
36#
发表于 2006-4-30 08:44 | 只看该作者
最初由 超级野人 发布
[B]另外我想问一下,在oracle中update的过程是不是先坐delete操作,把原纪录删除(整条记录),然后再做insert操作,插入更新后的数据(整条插入)???那么sqlsever是这样的么!? [/B]


直接修改。

使用道具 举报

回复
论坛徽章:
0
37#
发表于 2006-4-30 13:30 | 只看该作者
我记的在使用update的时候,该行就会被锁定啊,其他的都不能做任何的修改啊,不知道这样回答对不对,我是一个初学者

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
38#
发表于 2006-4-30 14:06 | 只看该作者
最初由 wanli311 发布
[B]我记的在使用update的时候,该行就会被锁定啊,其他的都不能做任何的修改啊,不知道这样回答对不对,我是一个初学者 [/B]


使用道具 举报

回复
论坛徽章:
2
BLOG每日发帖之星
日期:2009-01-08 01:01:05BLOG每日发帖之星
日期:2009-01-10 01:01:05
39#
发表于 2006-5-1 07:54 | 只看该作者
不错,学习中

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表