暂无图片
Oracle 导入dmp文件 其中一张表特别大,太慢了呀,怎么办呢?
我来答
分享
龙门DBA6642
2023-08-31
Oracle 导入dmp文件 其中一张表特别大,太慢了呀,怎么办呢?

Oracle 导入dmp文件 其中一张表特别大,太慢了呀,怎么办呢?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
My1492

用并行导入

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
艾茜

1.增加IMP的缓冲区大小

在导入数据时,Oracle IMP会将数据存储在内存中的缓冲区中,然后再将其写入磁盘。如果缓冲区太小,会导致IMP的写入速度变慢。因此,我们可以通过增加IMP的缓冲区大小来提高导入数据的速度。

在命令行中输入以下命令,即可增加IMP的缓冲区大小:

imp userid=username/password buffer=1000000 file=data.dmp
复制

其中,buffer参数设置了缓冲区大小为1000000字节。


2.将数据文件分成多个部分

导入大量数据时,如果将数据文件分成多个部分,可以提高导入数据的速度。因为多个文件可以并行导入,从而减少了导入的时间。

在命令行中输入以下命令,即可将数据文件分成多个部分:

imp userid=username/password file=data1.dmp,data2.dmp,data3.dmp

其中,file参数指定了数据文件的名称,可以指定多个文件。


3.禁用索引和约束

在导入数据时,Oracle IMP会自动为表建立索引和约束。如果表中有大量数据,则会导致导入速度变慢。因此,我们可以禁用索引和约束,待导入完成后再重新建立。

在命令行中输入以下命令,即可禁用索引和约束:

imp userid=username/password ignore=y indexfile=ind.sql constrnts=n file=data.dmp
复制

其中,ignore参数表示忽略错误继续导入,indexfile参数指定索引脚本文件的名称,constrnts参数表示禁用约束。


4.使用并行导入

Oracle IMP可以使用多个进程并行导入数据。这可以极大地提高导入数据的速度。在命令行中输入以下命令,即可使用并行导入:

imp userid=username/password parallel=4 file=data.dmp

其中,parallel参数表示使用4个并行进程来导入数据。

除了上述方法外,还可以增加数据库的内存、使用SSD硬盘等方式来提高导入数据的速度。


综上所述,通过增加IMP的缓冲区大小、将数据文件分成多个部分、禁用索引和约束、使用并行导入等方式,我们可以提高Oracle IMP的导入速度,从而更加高效地导入数据。

暂无图片 评论
暂无图片 有用 2
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
openGauss中慢sql解决方法中有类似于Oracle中的手动滞留内存中,以解决磁盘读或全表扫描慢的方法吗?
回答 1
不同于Oracle的内存格式,openGauss的总体思路是把采集的信息拿到外面的训练平台,基于决策树或者随机森林算法,分析和挖掘全表扫码或者磁盘读等慢sql根因。 
oracle 19c表空间传输到11g会有问题吗?
回答 1
会有问题,oracle不支持。 Youcannotexporttransportabletablespacesandthenimportthemintoadatabaseatalowerre
ADG 备库产生gap ,如何修复
回答 4
19C确实比11G、12C进步了很多,你的方法是正解。
怎么给非Oracle用户授权,让他可以连接数据库?
回答 1
已采纳
配置环境变量,把oracle的环境变量复制粘贴到新建用户下。
crs集群alert日志报错
回答 5
那参加节点2改回来吧,历史日志文件可以不管了
求一个红帽7生成oracle udev.rule的脚本。谢谢各位
回答 2
已采纳
供ASM使用的磁盘为sddsdi,defghi盘为ASM共享盘可以使用lsblk命令查看磁盘信息:lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0020G0di
拷贝执行计划到文本编辑工具后缩进消失
回答 2
已采纳
有的远程终端,比如mobaxterm, 确实会有这个问题. 我用securecrt就没有这个问题
Oracle 用expdp 导数据,创建了目录,但是导的时候还是报错:目录无效,怎么处理?
回答 4
1.操作系统层面创建的目录是否与数据库中的directory对应,若没有对应在数据库层面建立directory名称为dir1指向操作系统目录/home/oracle/dir1,并授予权限SQL>
pgsql的序列能实现oracle序列的order by 功能吗?
回答 1
序列和order by之间没有必然关系。但是不管oracle和pg,都是可以orderby(序列引用的列)
数据库大量ORA-00600报错,业务暂未受影
回答 1
请问这个库有做升级操作吗?另外请提供下trace文件中的 CurrentSQLStatement方便定位问题,怀疑是bug。