无法在表空间 PSTEMP 中将临时段扩展 16

Posted

技术标签:

【中文标题】无法在表空间 PSTEMP 中将临时段扩展 16【英文标题】:Unable to extend temp segment by 16 in tablespace PSTEMP 【发布时间】:2017-02-09 16:20:39 【问题描述】:

出现此错误的查询已经运行了 6 个月,并且运行良好。今天由于某种原因给了我这个错误:

由于 SQL 错误,运行查询时出错,代码=1652,消息=ORA-01652:无法在表空间 PSTEMP (50,380) 中将临时段扩展 16。

我不想扩展“PSTEMP”文件。查询不应该是问题,因为我提到它直到现在都运行良好。

我不知道这是否有帮助,但查询有提示值,如果我输入错误的值,它可以正常工作,但是当我输入上周的值时,我知道它应该返回 16 行,但我得到了上面的错误。

【问题讨论】:

欢迎来到 SO。请阅读How to Ask,并显示minimal reproducible example。 用尽(临时)空间并不一定意味着您的查询有问题。但我几乎可以保证,现在数据库的状态与 6 个月前不同;更多数据(可能)、不同数量的用户、不同的使用模式等。再次运行查询很有可能会起作用。或者不。 【参考方案1】:

你可以检查你的临时空间

SELECT * FROM dba_temp_free_space;

但尽管有错误消息,它可能不一定是 temp。

检查您的表空间可用空间:

select a.tablespace_name,sum(a.tots/1048576) Tot_Size,
     sum(a.sumb/1048576) Tot_Free,
     round(sum(a.sumb)*100/sum(a.tots),2) Pct_Free,
     sum(a.largest/1024) Max_Free,sum(a.chunks) Chunks_Free
     from
     (
     select tablespace_name,0 tots,sum(bytes) sumb,
     max(bytes) largest,count(*) chunks
     from dba_free_space a
     group by tablespace_name
     union
     select tablespace_name,sum(bytes) tots,0,0,0 from
      dba_data_files
     group by tablespace_name) a
     group by a.tablespace_name
order by pct_free;

【讨论】:

【参考方案2】:

很可能,随着基础数据的增长,您的 SQL 变得过于繁重。您可以尝试优化 SQL,或者如果这不是一个选项,请让 DBA 增加撤消表空间 (PSTEMP)。

【讨论】:

以上是关于无法在表空间 PSTEMP 中将临时段扩展 16的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128,但有 500GB 可用

ORA-01652 - 无法在表空间中将临时段扩展 4096 (oracle 10)

ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128 - 这是可恢复的吗?

Pentaho Spoon 转换抛出:ORA-01652:无法在表空间 TEMP 中将临时段扩展 128

ORA-01652: 使用 DBMS_RANDOM.VALUE 时无法在表空间 TEMP 错误中将临时段扩展 128

sql 如何解决Oracle“ORA-01652:无法在表空间X中用N扩展临时段”