Oracle大数据量导入,中途停止了,是怎么回事

 我来答
折柳成萌
高粉答主

2018-03-14 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5993万
展开全部
1、类似于这样的大表一般梁旁慎是需要创建分区的,表启隐需要分区,索引也需要分区,这里只提到分区就是子表,一个子表ORACLE内部就是一个段的概念,我的博客内部正好刚写了一篇关于分区的介绍,你也可以参考其他的资料帮你提供参考,这个需要对分区专门研究,然后根据实际情况去做分区(因为从题目上也不是太明确你的要求),不然有些时候往往适得其反。

2、ORACLE快照就不是解决这个问题的了,他主要是对回滚段的一些处理记录,当你删除增加数据,即使提交了,也可以通过快照找到近期的数据,但是如果回滚段较小,被冲掉了,那就没办法了,就像做一个大型统计需要很长时间,中途若对统计的表进行增删改查操作即使COMMIT也不会在统计中运算,因为ORACLE会自己创建在执行SQL前给与一个时间戳TIMESTAMP和对应SCN号码,这个是绝对唯一的,如果出现脏块,就会到回滚段去找数据,若回滚段被冲掉,这个统计会报错。

3、在这样大数据量的转存过程中,建议使用分批转存(不要一次转存过来),并自己去编写日志,转存过程中,将目标表使用Hint中的/*+append*/进去并后带NOLOGGING,如:INSERT /*+append*/ INTO <table_name> NOLOGGING SELECT .. FROM ...;这样会以最小的日志编写方式进行高水位线插入,另外如果是同步数据可以使用到MERGE,自定义分表快速一次性插入使用INSERT ALL。

4、如果是一个表内部就有这么多数据,目标表需要进行分区,而且根据实际情况可以的话建议是二级分区,分区一定要找好下手点,不能乱分,不然往往分后的性能不如不分的情况,至于如何分区,这些都要依据实际情况而定,没有完全的定论,不过只要分区,最基本的就是你的分区字段是99%的情况都要用以查询条件,并可以迅速定位分区的字段,一个分区内部的数据不要太多,各个分区的数据较为均匀分布。

5、分区基础上创建分区索引,有全局索引和本地索引,据实际情况可以参考使用,保证通过分区索引快速定位数据范围和查找数据(针对提取少量数据,而不是全盘扫描)。

6、至于如何将高版本的数据同步到低版本,尤其跨越两个大版本,本来ORACLE 10后橡敬有一个数据泵,但是ORACLE 9I用不了,但是用SQL无益是最慢的,DMP就算是小版本的区别也可能会有点问题,SQL*LOADER是人工去完成导入导出工作,外部表是文件结构也需要先导出去而且对于大数据量的性能不容乐观,就我个人来说在可能的情况下用DB-LINK链接过去,可进行双数据库操作,不过DB-LINK转存过程注意分布式事务的一致性问题。
sky496967173
2018-01-20 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4060
采纳率:80%
帮助的人:593万
展开全部
一般等一会就没事了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式