现在从远程数据库抽取100w+的记录,总是提示ORA-04030: out of process memory when trying to allocate 16408 bytes (koh-kghu call ,pmucalm coll)
我查了网上的资料需要修改数据库配置文件,说是PGA or SGA太大了,sort_area_size改为了2048000,但是DBA说现在数据库环境配置是最优的,我看不到当前设置值,只好从抽取技术上想办法。sql并不复杂主要是源和目标表太大了,过程用游标控制10w提交一次,速度太慢让人无法容忍,100w提交一次又出现错误04030。现在只能通过临时表中转,有没有什么更好的方法?谢谢!
我查了网上的资料需要修改数据库配置文件,说是PGA or SGA太大了,sort_area_size改为了2048000,但是DBA说现在数据库环境配置是最优的,我看不到当前设置值,只好从抽取技术上想办法。sql并不复杂主要是源和目标表太大了,过程用游标控制10w提交一次,速度太慢让人无法容忍,100w提交一次又出现错误04030。现在只能通过临时表中转,有没有什么更好的方法?谢谢!
解决方案 »
- winform 连不上 服务器的oracle数据库,提示“Settlement.DalSettlement.OracleHelper”的类型初始值设定项引发异常
- 简单问题再讨论:有主外键关系的多表一次插入
- 我要去日本工作
- 这个SQL怎么写
- 各位大虾,急求!急求啊!
- oracle9i创建用户时出现:ora-01996:Grant 失败!
- 请教一个数据库迁移的问题(解决再开贴送上一百分.)
- 长到5条裤衩,散分!
- 谁能写出这个SQL语句?100分哦!!!
- 表的方案和表的表空间有什么区别和联系?
- 请问:搞oracle 程序开发 和搞j2ee的。买什么样的笔记本好呀?
- 各位大虾 求助 :ORA-21779: 持续时间不活动
难道你真的仅仅是Select简单逻辑来搬移数据?拜托,如果是这样,你用得着一条一条用Cursor来存,吗?直接Inset into xx select * from xx where rownum < 100000;commit;外面来一个循环不就行了??还有谁说100W提交一次就比10W提交一次快了?这要看你的回滚表空间大小,日志文件大小来考虑。一般对于小型机以下的服务器应用10W已经是上线了,个人经验!!!!
把目标表删除掉
然后
create table target_table as select * from source_table@db_link_name;
这样搞一下,千万条记录的表都是很快的,只要网络好