在OLAP环境下,更多的CPU和内存资源用于加速数据处理,即oracle的并行查询。一个CPU一次只能服务一个进程。如果有多个CPU,可以通过提高CPU利用率法则来同时运行多个进程。即原来的单进程处理变成了多进程并行处理的加速执行时间。并行执行只用于整表处理或分区,以及在分区表中执行局部索引。并行查询用于以下情况:
全表扫描、重建索引、更新(全表或分区表)、插入的并行子查询、使用本地索引、批量插入(如SQLLDR)以及创建临时表。
例如,我们执行
select /*+ parallel(c1,2) */
...
来自客户c1
以...排序...流程a流程b
从提取行从提取行
顾客顾客
|| ||
|| ||
^^ ^^
流程c流程d
排序行(a-k)排序行(l-z)
合并行
||
返回结果集
这里我们看到这个过程分为四个过程,每个过程负责a-k和l-z,这样就可以并行处理。
在分区表中,我们也可以使用并行从进程来对应一个分区表。如果你的并行度是3,那么你的执行速度可能比普通的高3倍。
注意,在单CPU下,如果使用并行,可能会造成性能下降,要设置合适的并行度。
并行适用于长时间运行的语句。
并行处理可能不适合oltp,因为并发事务很多,每个用户都要用CPU,所以CPU负载本来就高。
所以并行处理更适合olap中的批量导入,sqlldr,mis报表,oltp中的重建索引。
查看是否安装了并行选项。
从V $选项中选择*
其中参数如“并行%”;
看一看
平行执行是真的吗?
如果为真,则在执行语句后检查。
select * from V$pq _ sesstat;
其中类似“% Parallelized”的名称;
如果查询是并行的>:& gt0表示执行并行。
可以强制使用并行,不考虑CPU数量,但是在单个CPU下使用并行没有优势。
alter session强制并行查询;
在对表执行全表扫描时,可以强制使用并行查询。
alter table tablename并行7;
关键词:甲骨文
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227328.html