ORA-01652:无法通过128(在表空间TEMP中)扩展temp段
ORA-06512在 XXXX,line610
ORA-06512:在line 2
原因:临时表空间不足
查看 610 行,执行的插入sql 数据太多导致的 , 我这边是重复数据过多 删除重复数据就可以了
备份数据 truncate 释放空间,然后再把数据插入到表中
还有一种方法,把SQL查询这块 CREATE 一个表 然后用表 来替换 查询的那段SQL (我是建表之后速度很快)
中间的查询 创建临时表,然后 查询SQL块 替换成创建的临时表
create table NNSNRSECTORCARRIER_temp
as
SELECT B.NE_NAME,SUBSTR(B.DN,1,INSTR(B.DN,',',1,4))||SUBSTR(A.REFNRSECTORCARRIER,INSTR(A.REFNRSECTORCARRIER,',',1,1)+1) CARRIER
FROM NRCARRIER A, NRCELLDU B
WHERE A.NE_NAME=B.NE_NAME
DELETE FROM NNSNRSECTORCARRIER D
WHERE EXISTS (SELECT * FROM (SELECT DISTINCT B.NE_NAME FROM NNSNRSECTORCARRIER A,
(SELECT B.NE_NAME,SUBSTR(B.DN,1,INSTR(B.DN,',',1,4))||SUBSTR(A.REFNRSECTORCARRIER,INSTR(A.REFNRSECTORCARRIER,',',1,1)+1) CARRIER
FROM NRCARRIER A, NRCELLDU B
WHERE A.NE_NAME=B.NE_NAME) B
WHERE A.DN =B.CARRIER) C
WHERE C.NE_NAME=D.NE_NAME);
DELETE FROM NNSNRSECTORCARRIER D
WHERE EXISTS (SELECT * FROM (SELECT DISTINCT B.NE_NAME FROM NNSNRSECTORCARRIER A,NNSNRSECTORCARRIER_temp B
WHERE A.DN =B.CARRIER) C
WHERE C.NE_NAME=D.NE_NAME);
PGA: 私有内存区,仅供当前发起用户使用。
三个作用
-
用户登录后的session信息会保存在PGA。
-
执行排序,如果内存不够,oracle会在临时表空间中完成
-
保存用户权限信息
SGA: 包含共享池,数据缓冲区,日志缓冲区以及一些相关的进程。
DATABASE: 数据最终存放的地方,其中一块区域是日志存放区。数据和记录日志又由DBWR和LGWR来写入数据库和重做日志组,待一个重做日志组满了之后切换到下一个,等到循环了一次之后,原来排序为第一组的日志会被ARCH进程写入归档日志。
附送 链接:https://www.cnblogs.com/yongjian/p/3700783.html