1 并向操作
对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程,并行的处理这些小的任务,这些并发的进程称为并行执行服务器(parallel executeion server),这些并发进程由一个称为并发协调进程的进程来管理,可以让多个CPU同时处理一个计算任务,充分使用系统资源,提高计算效率。
1.1 使用场景
资源充分,并向操作设计为充分,完全地利用一台机器所有资源,在OLAP,DW系统中,用户少,这正是想要的。但是OLTP系统(用户多,且事务很快就不合适了)
1.1.1 使用条件
1) 大任务: 执行时间必须是分钟,小时级别。参与运算的数据量大。在当前系统初定于参与运算数据量大于10GB或者SQL运行时间超过30分钟可考虑使用并行。
2) 资源丰富(CPU,内存,磁盘IO):并向查询会过度使用资源,负面地影响总体性能和运行时间。
对于联机分析系OLTP系统,很不适用并向查询了,OLTP系统的执行都是小任务;其本身的并发访问很多,资源竞争激烈,相应时间比串行还长。
1.2 使用语句
1.2.1 并向查询
并行查询允许将一个sql select语句划分为多个较小的查询,每个部分的查询并发地运行,然后将各个部分的结果组合起来,提供最终的结果,多用于全表扫描,索引全扫描等,大表的扫描和连接、创建大的索引、分区索引扫描、大批量插入更新和删除
SQL> select /*+ parallel(t1 8) */ count(*) from t1;
SQL> select degree from user_tables where table_name='T1';
DEGREE
--------------------
DEFAULT
并行度为Default,其值由下面2个参数决定
SQL> show parameter cpu
NAME TYPE VALUE
----------------