Singletask exp imp ? Still There ?

玉面飞龙在一则BLOG的评注中提起

imp exp sqlldr 有个叫做 singletask 模式 relink的方式据说可以增加执行速度。

上去是某种特定平台才有.据说会消耗更多内存.在IxORA 上有一则信息

To perform a single-task export, you must use the expst executable instead of just exp. You will probably need to create the executable first, as follows.
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk singletask
If you are intending the single-task executables to be used by a user other than oracle, then you will need to set the setuid bits as follows.
chmod 4511 $ORACLE_HOME/bin/*st

我在 Linux 下和 HP-UX 下测试了一下,现在的版本似乎都不支持了.得到的错误信息如下:

$ cd $ORACLE_HOME/rdbms/lib                                     
$ make -f ins_rdbms.mk singletask
 - Linking Singletask Export utility (exp)
         cc -Wl,+s -Wl,+n +DA2.0W +DS2.0 -o expst -L/oracle/product/9.2.0/rdbms/lib/ -L/oracle/product/9.2.0/lib/  
/oracle/product/9.2.0/rdbms/lib/s0exudrv.o  
/oracle/product/9.2.0/rdbms/lib/defopt.o -ldbtools9 
`if [ -f /oracle/product/9.2.0/lib/osntabst.o ]; then \
                echo '/oracle/product/9.2.0/lib/osntabst.o'; \
           else \
                echo '/oracle/product/9.2.0/network/lib/osntabst.o'; \
           fi ` /oracle/product/9.2.0/rdbms/lib/ttcsoi.o 
/oracle/product/9.2.0/rdbms/lib/ttcoerr.o 
/oracle/product/9.2.0/rdbms/lib/kpufpd.o 
/oracle/product/9.2.0/rdbms/lib/config.o 
-lserver9  -lodm9 -lskgxp9  -lskgxn9  -lpls9 -lplp9 -lslax9 -lgeneric9  -lclient9 -lcommon9 -lwtc9 -lmm 
-lknlopt -lpls9 -lserver9 -lpls9 
/oracle/product/9.2.0/lib/nautab.o 
/oracle/product/9.2.0/lib/naeet.o 
/oracle/product/9.2.0/lib/naect.o 
/oracle/product/9.2.0/lib/naedhs.o   `cat /oracle/product/9.2.0/lib/ldflags`    
-lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 -lclient9 -lpls9 -lplp9    -ljox9 -lserver9 
`cat /oracle/product/9.2.0/lib/ldflags`    
-lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 -ltrace9 `if ar tv /oracle/product/9.2.0/rdbms/lib/libknlopt.a 
| grep "kxmnsd.o" > /dev/null 2>&1 ; 
then echo " " ; 
else echo "-lordsdo9"; fi` -lcore9  -lvsn9 -lcommon9 -lgeneric9 -lknlopt  -lctxc9 -lctx9 -lzx9 -lgx9 -lordimt9 
-lunls9 -lsnls9 -lnls9  -lcore9  -lxml9 -lunls9 
-lnls9  -lwwg9 -locijdbc9 -lxsd9 -lnls9  -lcore9  -lxml9 -lunls9   `cat /oracle/product/9.2.0/lib/sysliblist`  -lm  
ld: I/O error, 
file "/oracle/product/9.2.0/rdbms/lib/kpufpd.o": No such file or directory
Fatal error.
*** Error exit code 1

Stop.
$ 
若要在用户和Oracle 8i之间传输大量的数据(如使用Export/Import),使用单任务结构是非常高效的,因为作为单任务链接Oracle可执行程序,允许某用户进程直接存取整个SGA。但运行单任务需要更多的内存。为了使用单任务导入、导出和SQLLoader(sqlldrst)可执行程序,我们可以调用make文件的ins_rdbms.mk(在$ORACLE_HOME/rdbms/lib目录中)。 下面是用于实现单任务导入、导出和SQLLoader(sqlldrst)的可执行程序:
 
% cd $ORACLE_HOME/rdbms/lib 
% make -f ins_utilities.mk singletask