IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → oracle并行查询常用7问

oracle并行查询常用7问

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  在OLAP环境,以利用多的CPU和内存资源来加速处理数据,也即oracle的并行查询。单个CPU同一时刻只能服务一个进程,如果有多个CPU,提高CPU利用律,就可以同时运行多个进程。也就是原来单个进程处理的变成多个进程并行处理加速执行时间。并行执行只是在全表处理或者分区及在分区表中执行本地索引时用到。下面情况会用到并行查询:

  全表扫描、 rebuild index、update (全表或分区表)、insert的并行子查询、本地索引使用、批量插入,象SQLLDR、创建临时表

  比如我们执行

  select /*+ parallel(c1 ,2) */

  ...

  from customers c1

  order by ...process a process b

  fetch rows from fetch rows from

  customers customers

  || ||

  || ||

  ^^ ^^

  process c process d

  sort rows(a-k) sort rows(l-z)

  combine rows

  ||

  return result set

  这里我们看到这个进程分散成4个进程,排序中各负责a-k和l-z,这样就可以并行处理

  我们在分区表中,也可以用一个并行从进程对应一个分区表如果你的并行度是3,那么你可能就比普通的执行速度提高3倍

  注意在单CPU下,如果使用并行,那么就可能造成性能下降,而且也要设置合适的并行度

  并行适合对于长时间运行的语句

  在oltp可能并不适合使用并行处理,因为事务并发比较多,每个用户都要使用CPU,CPU的负载本来就比较高

  所以并行处理还是比较适合olap中的批量导入,sqlldr,mis report和oltp中rebuild index。

  看看并行选件是否安装

  Select * FROM V$OPTION

  where parameter like 'Parallel%';

  看看

  Parallel execution是不是TRUE

  如果是TRUE,执行语句后查看

  select * from V$pq_sesstat;

  where name like '%Parallelized';

  如果Queries Parallelized>>0就说明是执行了并行

  可以强制使用PARALLEL,和CPU数量无关,不过在单个CPU下使用并行没有什么好处

  alter session force parallel query;

  可以强制将某表执行全表扫描时使用并行查询

  alter table tablename parallel 7;

关键词标签:oracle

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限