想让Oracle的exp查询要导出的表时用并行去执行, 不想建一个Logon的触发器来做, 就Hack它一把了. 下面是用正常的exp跟踪(TRACE=YES)出来的SQL语句.

SELECT /*+NESTED_TABLE_GET_REFS+*/ "SH"."T_COMPRESS".*
FROM
"SH"."T_COMPRESS"

Rows     Row Source Operation
-------  ------------------------------
  10089  TABLE ACCESS FULL T_COMPRESS

    将exp拷贝一份, 命名为expp(Exp Parallel). 然后用UltraEdit打开expp文件, 在二进制模式下找到如下这一段.

BEGIN     SYS.DBMS_EXPORT_EXTENSION.SET_NO_OUTLINES;  END;

    将它编辑为"ALTER SESSION FORCE PARALLEL QUERY PARALLEL 4", 然后保存. 接下来用expp来导出一个表看看, 加上TRACE=YES选项.

SELECT /*+NESTED_TABLE_GET_REFS+*/ "SH"."T_COMPRESS".*
FROM
"SH"."T_COMPRESS"

Rows     Row Source Operation
-------  -------------------------------
  10089  PX COORDINATOR  
      0   PX SEND QC (RANDOM) :TQ10000
      0    PX BLOCK ITERATOR
      0     TABLE ACCESS FULL T_COMPRESS

    自已玩玩可以, 不要在正式的场合下这样做. 正式场合请改表的并行度或用Logon触发器.