oracle 并行(Parallel)使用
?
1.查询
SELECT /*+ Parallel(t,8) */ * FROM emp t; SELECT /*+ Parallel(8) */ * FROM emp t; SELECT /*+ Parallel */ * FROM emp t;
?
2.创建索引
create index idx_emp_test on emp(empno,ename,job) nologging parallel 32;
???????? 创建索引的时候,如果有条件的话一定要加并行!客户这边的ExaData服务器,对运单表(5000多万记录,90多个字段,60多G数据)创建索引,索引字段包含6列,并行度开到64,创建索引耗时竟然只消耗13秒多点,把俺惊讶的……
?
3.执行表分析
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname => 'scott',tabname => 'emp', degree => 32,cascade => true);
?
4.插入
INSERT /*+ append parallel(30) */ INTO t_a SELECT /*+ parallel(30) */ FROM t_b -- PS:个人在客户ExaData服务器上 使用insert select做测试, insert加 Append后, 加不加Parallel 效果没有什么差别,不知为何. 但后面的select 不加Parallel 差别太大了
?