暂无图片
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
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏