oracle 并行sql指南

               没有并行技术的时候,一个会话只能利用cpu或者磁盘设备其中之一,结果串行执行sql语句不能利用整个计算机的处理能力。并行执行使得单个会话和sql语句能利用多个cpu各磁盘的处理能力

          1、理解并行sql的概念

          在串行的(非并行的)执行环境中,的进程或者线程承担需要处理你SQL语句的操作,而且在后续活动开始之前,前面的每个动作必须完成。单个ORACLE进程可能只能利用单个CPU的处理能力,而且在任何给定时刻只能从一块磁盘执行读操作。因为大部分现代硬件平台都包括一块以上的CPU,而且因为ORACLE数据通常会跨多块磁盘分布,所 串行SQL执行不能利用所有可用的处理能力。

例如:select * from sh.customers order by cust_first_name,cust_last_name,cust_year_of_birth

如果不用并行查询选项,单个进程将会负责提取“CUSTOMERS”表的所有行。也就是这同一个进程,还要负责对这些行排序,以满足“order by ”从句的要求。我们可以请求oracle并行执行这句SQL,需要使用“parallel”关键字

    声明:  select /*+parallel(c,2)*/ *

                 from sh.customers c

                 order by cust_first_name,cust_last_name,cust_year_of_birth

如果并行处理可用,“customers”表将被并行的两个进程进行扫描,另外会有两个进程将被分配对结果进程排序,最后一个进程(也就是一开始发起SQL的会话)会整理这些行并返回结果集。那个请求和协调这些并行进程流的进程叫查询协调器(query coordinator).

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值