社区
Oracle
帖子详情
oracle并行处理的问题???
FoxBryant
2011-08-31 12:56:30
oracle支持并行处理,提供了如表级锁、行级锁等。
1. 哪位能帮忙介绍下插入、查询及删除操作时,分别会用到哪些锁?
2. 三个线程同时对一个表分别执行插入、查询及删除操作时,oracle是否会并行处理,还是要等一个操作完成后再进行另一个操作?
非常感谢!
...全文
470
12
打赏
收藏
oracle并行处理的问题???
oracle支持并行处理,提供了如表级锁、行级锁等。 1. 哪位能帮忙介绍下插入、查询及删除操作时,分别会用到哪些锁? 2. 三个线程同时对一个表分别执行插入、查询及删除操作时,oracle是否会并行处理,还是要等一个操作完成后再进行另一个操作? 非常感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FoxBryant
2011-09-03
打赏
举报
回复
[Quote=引用 11 楼 lnuwhy 的回复:]
你可以看下oracle concepts 第四章 事务管理 和第14章 并发和一致性,就一目了然了,这么听别人讲估计你还是迷糊
[/Quote]
说的很对,小弟这就去看哈,嘿嘿!
lnuwhy
2011-09-02
打赏
举报
回复
你可以看下oracle concepts 第四章 事务管理 和第14章 并发和一致性,就一目了然了,这么听别人讲估计你还是迷糊
yjytiantang
2011-09-02
打赏
举报
回复
[Quote=引用 7 楼 foxbryant 的回复:]
引用 5 楼 justdoitman 的回复:
...
另外,oracle执行查询语句时是查询未提交的语句。
是在已提交的记录里查询吧?
[/Quote]
用户进程根本不会直接操作到数据库本身。
在select,update,delete ..等操作时,系统首先会去缓存区里找用到的信息,如果有直接作业,没有的话会把用到的信息从数据库里提取到缓存区。然后DBWn进程会不定时的把缓存区的信息提交到数据库。所以缓存区里既有已提交但还没来得及写入数据库的信息,也有已经回滚但数据库还没撤销的数据。总体来说,最终oracle会写入已提交的数据,回滚未提交的数据,保持数据一致性。
诺维斯基
2011-09-02
打赏
举报
回复
[Quote=引用 1 楼 yixilan 的回复:]
1.锁类型
TM: DML or table lock(所有的插入,删除,更新都被称为DML操作;查询时不会产生锁)
TX: transaction lock
2.查询就无所谓了,不会有锁。
除了查询,其他操作,ORACLE不会并行处理,只能等待其中一个操作完成后,再进行下一个操作。
例:线程1对表A做插入操作的时候,并且还没有提交的时候,会同时产生TM和TX两种锁,其它线程不能对表A做……
[/Quote]
+
Kobayashi
2011-09-02
打赏
举报
回复
一楼强....
FoxBryant
2011-09-01
打赏
举报
回复
[Quote=引用 5 楼 justdoitman 的回复:]
...
另外,oracle执行查询语句时是查询未提交的语句。
[/Quote]
是在已提交的记录里查询吧?
FoxBryant
2011-09-01
打赏
举报
回复
[Quote=引用 4 楼 yixilan 的回复:]
引用 3 楼 yjytiantang 的回复:
引用楼主 foxbryant 的回复:
只要互相操作的不是同一个字段,oracle会并行处理,它具有多态性,不需等待~
对,只要互相操作的不是同一条记录吧。呵呵。
[/Quote]
是不是可以这么说:假如当前表有100条记录,一个线程在表后面直接追加,另一个线程在100条记录里面进行有条件删除。两个线程是可以并行处理的?
yjytiantang
2011-08-31
打赏
举报
回复
[Quote=引用楼主 foxbryant 的回复:]
oracle支持并行处理,提供了如表级锁、行级锁等。
1. 哪位能帮忙介绍下插入、查询及删除操作时,分别会用到哪些锁?
2. 三个线程同时对一个表分别执行插入、查询及删除操作时,oracle是否会并行处理,还是要等一个操作完成后再进行另一个操作?
非常感谢!
[/Quote]
查询时,好像也会产生锁,是共享锁。
删除,插入时,是排他锁。
只要互相操作的不是同一个字段,oracle会并行处理,它具有多态性,不需等待~
貌似是这样,你google一下~~
Alessandro_
2011-08-31
打赏
举报
回复
[Quote=引用 1 楼 yixilan 的回复:]
1.锁类型
TM: DML or table lock(所有的插入,删除,更新都被称为DML操作;查询时不会产生锁)
TX: transaction lock
2.查询就无所谓了,不会有锁。
除了查询,其他操作,ORACLE不会并行处理,只能等待其中一个操作完成后,再进行下一个操作。
例:线程1对表A做插入操作的时候,并且还没有提交的时候,会同时产生TM和TX两种锁,其它线程不能对表A……
[/Quote]+
yixilan
2011-08-31
打赏
举报
回复
1.锁类型
TM: DML or table lock(所有的插入,删除,更新都被称为DML操作;查询时不会产生锁)
TX: transaction lock
2.查询就无所谓了,不会有锁。
除了查询,其他操作,ORACLE不会并行处理,只能等待其中一个操作完成后,再进行下一个操作。
例:线程1对表A做插入操作的时候,并且还没有提交的时候,会同时产生TM和TX两种锁,其它线程不能对表A做DML操作;当线程A提交后,把表A的锁释放出来,其他的线程才可以依次对该表继续做DML操作。
在这期间,任何其他线程执行查询是可以的。不会有锁
justdoitman
2011-08-31
打赏
举报
回复
通常的数据库中是有排它锁和共享锁的,排他锁在对数据库进行更新、插入或者删除时添加的,共享锁在选择时添加的。但是oracle的实现机制不太一样,只有排他锁,没有共享锁,而且这个共享锁是基于元组的,也就是只要线程不是对同一行进行DML,就是可以并行的,否则就需要等一个线程完成后才可以执行。另外,oracle执行查询语句时是查询未提交的语句。所以不用加锁,只要能判断出哪些是已提交的,哪些是未提交的即可。
yixilan
2011-08-31
打赏
举报
回复
[Quote=引用 3 楼 yjytiantang 的回复:]
引用楼主 foxbryant 的回复:
只要互相操作的不是同一个字段,oracle会并行处理,它具有多态性,不需等待~
[/Quote]
对,只要互相操作的不是同一条记录吧。呵呵。
2013.12.18
oracle
并行操作??疑问
oracle
并行操作 并行与父操作合并(pcwp)---执行计划中的相同 从属进程并行执行一个操作及其父操作。 并行与子操作合并(pcwc)---执行计划中的相同从属进程并行执行一个操作及其自操作。因此没有通讯发生。 串行到并行(s-p)---一个串行操作发送数据给并行操作。此操作效率差,避免使用它。有两个原因会产生这个操作 注释: pcwp、pcwc具体什么操作过程?
oracle
并行进程查询,
oracle
并行查询常见
问题
在OLAP环境,以利用多的CPU和内存资源来加速处理数据,也即
oracle
的并行查询。单个CPU同一时刻只能服务一个进程,如果有多个CPU,提高CPU利用律,就可以同时运行多个进程。也就是原来单个进程处理的变成多个进程
并行处理
加速执行时间。并行执行只是在全表处理或者分区及在分区表中执行本地索引时用到。下面情况会用到并行查询:全表扫描、rebuildindex、update(全表或分区表)、i...
oracle
并行查询很慢,
oracle
并行查询常见
问题
在OLAP环境,以利用多的CPU和内存资源来加速处理数据,也即
oracle
的并行查询。单个CPU同一时刻只能服务一个进程,如果有多个CPU,提高CPU利用律,就可以同时运行多个进程。也就是原来单个进程处理的变成多个进程
并行处理
加速执行时间。并行执行只是在全表处理或者分区及在分区表中执行本地索引时用到。下面情况会用到并行查询:全表扫描、rebuildindex、update(全表或分区表)、i...
Oracle
并行执行(
Oracle
Parallel Execution)
在会话级别开启并行度后,可以通过v$session表中的pdml_status,pddl_status, pq_status来查看DML,DDL, QUERY 的会话并行状态,可能的状态有disabled/enabled/forced。使用force选项时,会强制后续语句使用并行执行,并且用指定的并行度覆盖默认并行度。如果你不知道并行度该设置为多少,可以不指定并行度,这样
Oracle
会自动决定并行度,例如上面的语句中,我们去掉parallel后的数字,
oracle
将自行决定并行度。
oracle
数据库并行数限制,
Oracle
数据库
并行处理
技术详解(上)
Oracle
数据库
并行处理
技术是数据库的一项核心技术,它使组织能够高效地管理和访问TB级的数据。如果不能提供高效的
Oracle
数据库
并行处理
技术,这些大型数据库(通常用于数据仓库但也越来越多地出现在业务系统中)将不会存在。简而言之,
并行处理
就是利用多个CPU和I/O资源来执行单个数据库操作。尽管现在每个主要的数据库供应商都声称可以提供
并行处理
能力,但每个供应商所提供的体系结构其实存在关键的差异。本...
Oracle
17,090
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章