【发布时间】:2016-11-11 01:50:05
【问题描述】:
我们正在使用 sqlplus 在一个包含 500 多列和每天大约 1500 万条记录的大表上使用 sqlplus 从 oracle 卸载数据。 查询失败,因为 oracle 无法为结果集分配所需的内存。 排除了微调 oracle DB 服务器以增加内存分配的可能性,因为它在团队中使用并且非常重要。 这是一个在列上带有过滤器的简单选择。 我有哪些选择才能让它发挥作用?
1) 将我的查询分解为多个块并以夜间批处理模式运行。 如果是这样,如何分解选择查询 2) 在使用 sqlplus 对大表进行选择查询时,我可以使用任何优化技术吗? 3) 任何基于 java/ojdbc 的解决方案可以将选择分成块并减少 db 服务器的负载?
任何指针都非常感谢。
这是抛出的错误消息: ORA-04030: 尝试分配 169040 字节时进程内存不足(pga 堆,kgh 堆栈) ORA-04030: 尝试分配 16328 字节时进程内存不足 (koh-kghu sessi,pl/sql vc2)
【问题讨论】:
-
确切的错误信息和错误编号是什么?
-
“卸载”。这是出于存档目的吗?像数据泵这样的东西会起作用吗?
-
它是每晚卸载到目标数据库而不是存档。