暂无图片
Oracle数据库何时使用并行执行?
我来答
分享
三阳
2023-03-16
Oracle数据库何时使用并行执行?

Oracle数据库何时使用并行执行?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

并行执行可能很神奇。一个过程原本需要执行数小时或者数天,通过使用并行执行,可能几分钟内就可以完成。将一个大问题分解为小部分,这在有些情况下可以显著地减少处理时间。不过,考虑并行执行时,要记住一个基本概念:并行查询(Parallel Query)选项本质上是不可扩展的。

简单地说,并行执行也可能是一个很糟糕的想法,在许多情况下,应用并行处理后,可能只会带来资源占用的增加,因为并行执行试图使用所有可用的资源。在一个系统(如OLTP系统)中,如果资源必须由多个并发事务所共享,你就会观察到,并行执行可能导致响应时间增长。它不会采用某些在串行执行计划中比较高效的方法,而倾向于采用诸如全表扫描这样的访问路径,希望能把较大的批量操作划分为多个子集,然后并行地处理每个子集,从而优于串行计划。但是如果并行执行应用不当,不仅不能解决性能问题,反而会成为性能问题的根源。

所以,在应用并行执行之前,需要保证以下两个前提成立。

1. 必须有一个非常大的任务,如对50GB数据进行全表扫描。

2. 必须有足够的可用资源。在对50GB数据进行并行全表扫描之前,要确保有足够的空闲CPU处理并行进程,还要有足够的I/O能力。50GB数据可能分布在多个物理磁盘上(而不只是一个物理磁盘),以允许多个并发读请求能同时发生,从磁盘到计算机还要有足够多的I/O通道,以便能并行地从磁盘获取数据等。

如果只有一个小任务(通常OLTP系统执行的查询就是这种典型的小任务),或者可用资源不足(这也是OLTP系统中很典型的情况),其中CPU和I/O资源通常已经得到最大限度的使用,那就根本不用考虑并行执行。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
回答交流
Markdown


请输入正文
提交
相关推荐
遇到latch: cache buffers chains 和buffer busy waits分别该如何解决
回答 1
latch:cachebufferschains:增加DBCACHESIZE参数的值,该参数控制着数据库缓存的大小。增加缓存大小可以减少竞争并提高性能。使用更快的存储设备,如使用固态硬盘(SSD)替换
一条查数据字典的sql占用临时表空间30G
回答 2
但是X$表的统计信息建议收集吗?毕竟是一直动态变化的。
oracle在创建表空间,如果没有给表空间指定路径,一般默认路径在什么哪里?
回答 1
已采纳
看你是用的本地存储还是ASM,如果是本地存储,默认会放到$ORACLEBASE/oradata/sid/路径下。如果是ASM,在安装时会指定一个默认磁盘组来存放表空间。
关于oracle11g升级到oracle19C
回答 1
先升级到12再升级到19
请帮分析下ORA-00600 [1158]
回答 2
从trace文件可以开头看到:SESSIONID:(2371.9)2019081510:14:14.250是会话sid:2371serial:9的会话。按照这个sid搜索:往下接着翻可以找到你说的sq
Oracle中临时表与实体表可以组合建一个视图表吗?
回答 2
可以的
oracle 12.2.0.1 rac节点2由于ora-600:internal error code.arguments:[kjctr_pbmsdg:badmsg2]宕机重启
回答 9
结束
insert select 很慢
回答 4
量不算大,建议还是多在select上提升,如分批基于rowid的查询分片多sessioninsert
Oracle:两个店的数据库,结构一样,A库里面bas_info表里面数据1700行,B库的bas_info表数据只有1000行 有什么办法同步吗?(就是把A表里面多的那700行写入B库)
回答 2
已采纳
建个dblink,insert两个表的minus差集
godengate12c 不能同步数据
回答 4
升级问题到:一般问题为什么在ogg1数据库表,无意中执行一个错误的update语句,想更新数据库表一个数据记录的字段值。就造成ogg2的rep01就变成abend状态?无论如何start/stop都是
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~