oracle insert大量数据很慢

select_update_insert 2019-03-05 07:39:27
对一个表插入大量数据很慢,删掉索引后,速度变快,但是查询又很慢,语句为insert /*+ append */ into tablename nologging,每天要写上万条记录,并且又要对该表进行实时查询
...全文
3253 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 9 楼 select_update_insert 的回复:
[quote=引用 8 楼 重拾csdn 的回复:]
我觉得先要考虑业务场景,这个数据是由谁进行写入的,写入时候,时间有没有要求。

带索引的表,本身特点就是查询快,写入慢。

如果插入时间允许可以测试一下如下操作时间消耗。

alter index index_name unusable;
insert 数据
alter index index_name rebuild;
感谢感谢,我测试下看看[/quote]测试了下,之前插入需要半小时,现在只需要半分钟,就是重建索引的话也慢,花了12分钟
  • 打赏
  • 举报
回复
引用 8 楼 重拾csdn 的回复:
我觉得先要考虑业务场景,这个数据是由谁进行写入的,写入时候,时间有没有要求。

带索引的表,本身特点就是查询快,写入慢。

如果插入时间允许可以测试一下如下操作时间消耗。

alter index index_name unusable;
insert 数据
alter index index_name rebuild;
感谢感谢,我测试下看看
大脸猫o 2019-03-06
  • 打赏
  • 举报
回复
我觉得先要考虑业务场景,这个数据是由谁进行写入的,写入时候,时间有没有要求。

带索引的表,本身特点就是查询快,写入慢。

如果插入时间允许可以测试一下如下操作时间消耗。

alter index index_name unusable;
insert 数据
alter index index_name rebuild;
卖水果的net 2019-03-06
  • 打赏
  • 举报
回复


1、参考一下 1# 的建议,就是锁表比较麻烦。

2、考虑一下表分区,看看能否套用在你的这张表上。
  • 打赏
  • 举报
回复
引用 5 楼 卖水果的net 的回复:
通过 insert ...select 写的,

还是 insert select 1 from dual union all select 2 from dual union all .... select 10000 from dual ?
通过前者写的啊
卖水果的net 2019-03-06
  • 打赏
  • 举报
回复
通过 insert ...select 写的,

还是 insert select 1 from dual union all select 2 from dual union all .... select 10000 from dual ?
  • 打赏
  • 举报
回复


引用 3 楼 卖水果的net 的回复:
每天上万条数据不算什么。楼主应该关注一下,数据是一次性写的 上万条,还是一条一条写的。
一次性写的
卖水果的net 2019-03-06
  • 打赏
  • 举报
回复
每天上万条数据不算什么。楼主应该关注一下,数据是一次性写的 上万条,还是一条一条写的。
Mr.Rom 2019-03-06
  • 打赏
  • 举报
回复
用触发器解决怎么样
「已注销」 2019-03-05
  • 打赏
  • 举报
回复
插入前删除索引插入数据后重建索引不就好了

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧