
正文
oracle数据导入慢,oracle导入几十万数据多久
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle数据导出格式为dmp特别慢
1、看你的文件多大,imp比exp还慢。一般来说个人认为是速度比是1:2以上,也就是说,如果导出时间是5分钟,那么导入一般10分钟以上,以上多少就不好说,甚至能接近或达到1:3。个人觉得比例差不多这样。
2、这个主要是系统的io问题,如果io能力足够的话那怎么折腾都行。否则的话可能会造成操作系统层有大量的iowait,业务处理速度会降低,如果业务对系统延时有要求的话还可能会超时,导致交易失败。
3、关于快慢问题,你可以用sqlldr进行导入,sqluldr2进行导出,很快,很多人都在用。
4、导出导入表和数据,最快的还是在plsql工具里选择导出导入然后就可以了,第一步选择导入。第二步选择你要导出的表。然后选择SQL插入,选择如图所示,where字句可以添加限制条件的导出表数据。
相关问答
Q1: ORACLE插入数据慢怎么办?
数组操作允许导入程序读取外部文件数据并解析后,向数据库提交SQL语句,批量插入 SQL 语句检索出的数据。Oracle 仅需要执行一次 SQL 语句,然后在内存中批量解析提供的数据。
使用Oracle的SQLLoader进行导入。首先在一个.ctl文件中写明要导入数据文件的名称,路径和格式,还有一些简单的规则。之后,在Oracle的控制台,使用sqlldr命令批量导入数据。比insert语句速度快很多。
如果表是分区的话,索引也最好改成是分区索引。
Q2: Oracle在插入大量数据时速度会越来越慢,请问有什么解决办法
数据导入的最简单方法就是编写 INSERT 语句,将数据逐条插入数据库。这种方法只适合导入少量数据,如 SQL*Plus 脚本创建某个表的种子数据。
我估计是用 游标来处理的。如果用游标一行一行 FETCH , 性能可能要打点折扣。这种情况下,可以尝试使用 BULK COLLECT 来批量加载。下面是 Oracle 游标处理II - 使用BULK COLLECT 的例子。
在窗口一中执行select sid from v$mystat where rownum=1;结果中的数字是当面session的标识(设为sid)。在窗口一中执行插入操作,也就是你说1000条需要20分钟的那个操作。
Q3: oracle数据导入为什么这样慢
题主是否想询问“oracle数据导出格式为dmp特别慢是为什么”?存储空间不足。根据查询oracle官网中可知,其中数据导出格式为dmp,是一种二进制文件,并且特别慢是由于存储空间不足导致的,可以尝试清理空间后再使用即可。
跟数据库的量级有关。跟log表是否有索引有关,若建了索引,则查询速度会快一点,但插入时会重建索引,故插入速度会慢一点。以上内容,仅供参考。
跟索引关系不大 看看你这个表有没有外键吧 我之前的项目里就出现过这个情况,一个记录INSERT很慢,后来定位是外键的问题,把 FK去掉之后,速度可是瞬间完成。
我建议lz这么做:在窗口一中执行select sid from v$mystat where rownum=1;结果中的数字是当面session的标识(设为sid)。在窗口一中执行插入操作,也就是你说1000条需要20分钟的那个操作。
你可以研究一下,当前的瓶颈是什么,不过实在的说,一亿多数据,跑半天是正常的。不过这个要看你用的什么方法插入的数据。应该不是insert into values 把?全部资源肯定不可能的。
关于oracle数据导入慢和oracle导入几十万数据多久的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







