Rowid分片的方式加速导出LOB对象

LOB对象导出时,无法使用并行,导出的时间有可能会非常久。我们可以尝试使用Rowid分片的方式,手动分配并发的导出进程,这种方式有助于加快导出速度。

 

示例,导出test.t这张表,导出脚本如下所示。

#!/bin/bash

chunk=10

TABLE_NAME=test.t

for ((i=0; i<${chunk}; i++))

do

    nohup expdp userid=\'/ as sysdba\' TABLES=${TABLE_NAME} QUERY=${TABLE_NAME}:\"where mod\(dbms_rowid.rowid_block_number\(rowid\)\, ${chunk}\) = ${i}\" directory=dpdir dumpfile=${TABLE_NAME}_${i}.dmp logfile= ${TABLE_NAME}_${i}.log JOB_NAME=expdp_${TABLE_NAME}_${i} &

    sleep 10

done

思路是指定分片数量,例如本示例中设置了分片数为10,然后每个分片就有相应的expdp导出进程。

 

示例,导入脚本如下所示。

#!/bin/bash

chunk=10

TABLE_NAME=test.t

for ((i=0; i<${chunk}; i++))

do

    nohup impdp userid=\'/ as sysdba\' directory=dpdir dumpfile=${TABLE_NAME}_${i}.dmp logfile=impdp_${TABLE_NAME}_${i}.log DATA_OPTIONS=DISABLE_APPEND_HINT table_exists_action=append &

    sleep 10

done

 

 

 

posted @   石云华  阅读(387)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示