ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

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: 私有内存区,仅供当前发起用户使用。

三个作用

  1. 用户登录后的session信息会保存在PGA。
  2. 执行排序,如果内存不够,oracle会在临时表空间中完成
  3. 保存用户权限信息

SGA: 包含共享池,数据缓冲区,日志缓冲区以及一些相关的进程。

DATABASE: 数据最终存放的地方,其中一块区域是日志存放区。数据和记录日志又由DBWR和LGWR来写入数据库和重做日志组,待一个重做日志组满了之后切换到下一个,等到循环了一次之后,原来排序为第一组的日志会被ARCH进程写入归档日志。

附送 链接:https://www.cnblogs.com/yongjian/p/3700783.html

原文地址:https://www.cnblogs.com/JIKes/p/13710934.html