A(本地表)大约1W条记录,B(远程表)大约30W条记录,现通过DBLINK将A与B表关联并删除B表中的符合条件的记录,并发为28进程,执行了很长时间报出ORA-04030的错误,请教一下高手:
1、两张表的数据量并不是太大,为什么会占用那么多资源?
2、像这种关联的操作是在本地内存中执行的吗?
3、如何解决ORA-04030的错误?
4、这样的设计模式有无改善的方法(比如先把A表通过DBLINK来INSERT到远程表,再将两张远程表进行关联,是否占用的资源会少些?)?
1、两张表的数据量并不是太大,为什么会占用那么多资源?
2、像这种关联的操作是在本地内存中执行的吗?
3、如何解决ORA-04030的错误?
4、这样的设计模式有无改善的方法(比如先把A表通过DBLINK来INSERT到远程表,再将两张远程表进行关联,是否占用的资源会少些?)?
1.通过dblink把a的数据传到b,这里只传需要的字段的数据,其它的不传。
2.在两张表中建立合适的index
3.设置合适的pga大小。
2)可能是你的表开发并行引起的,关闭并行试试
alter table you_table_name noparallel;
出现该错误,可能是你PGA小了,如果是非WINDOWS系统,也可能是你OS参数未设对,等等原因。
如果你无法提供上述详细信息,可以试试你说的在本地建临时表方式处理。