« 猜想Oracle Direct方式 »
DBA » http://www.anysql.net/dba/oracle_direct_export.html 2009-04-16前段时间发现Direct方式导出要比普通方式快一倍, 一直在想原因. 仔细参详了OCI开发者指南文档中有关Direct装载的方式后, 对于Direct方式和普通方式的区别作了一个猜测. 下图是在普通方式下进行批量处理时记录的返回情况, 每一个列是一个数组.
这种方式下, 导出成文本时, 从Oracle获得一批记录后, 客户端程序需要做两个循环, 来一行一行地写出. 而Direct方式下, Oracle返回的记录格式不一样, 如下图所示.
在Direct方式下, 返回的顺利是一行串一行的方式, 使用Export或Export Datapump时, 就可以不用进行符何循环, 直接将取出来放到缓冲中的记录写出到文件, 从而节约了客户端的资源, 从Oracle数据库中记录的存贮格式来看, 以Directs格式存放更合适, 只不过Oracle并没有开放这个程序接口, 也没有为文本方式导出开发类似的API接口.
也许有这样的接口, 只是Oracle不告诉我们, 可以请个很懂Windows程序的人来Debug进行分析一下.


Recent Comments