gpt4 book ai didi

sql - Oracle 11g - 临时表空间段未发布(Oracle 错误?)

转载 作者:行者123 更新时间:2023-12-03 17:43:04 25 4
gpt4 key购买 nike

我使用的是 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production,我在 TOAD 12.6.0.53 中执行的以下查询有问题(不是典型查询,但仅用于演示):

with rownums 
as (select distinct
rownum rn
from dual
connect by level <=1000000
)
select rn from rownums
union all
select rn from rownums;

--Edit: this Statement ist NOT showing the behaviour:
begin
for cRow in (with rownums
as (select distinct
rownum rn
from dual
connect by level <=1000000
)
select rn from rownums
union all
select rn from rownums)
loop
return;
end loop;
end;

执行此查询后,我可以使用此查询检查临时表空间的使用情况:
SELECT S.sid, S.serial#, SUM (T.blocks) * TBS.block_size / 1024 / 1024 used_mb, T.tablespace
FROM v$sort_usage T, v$session S, dba_tablespaces TBS
WHERE T.session_addr = S.saddr
AND T.tablespace = TBS.tablespace_name
and s.sid = sys_context('userenv','sid')
GROUP BY S.sid, S.serial#, TBS.block_size, T.tablespace;

结果是,每次执行上面的 testquery 都需要大约 12MB 的临时表空间,直到我断开 session 连接才会释放它。
如果我经常这样做,它也会导致 ORA-1652:无法扩展临时段。

我究竟做错了什么?或者这可能是一个 oracle 错误?

最佳答案

TEMP 表空间有一些有限的磁盘空间。当您运行查询时,它开始越来越多地使用 TEMP 空间,直到达到极限并给出错误无法扩展 TEMP ,因此可能有两种解决方案

  • 使用 EM
  • 更好地增加 TEMP 空间
  • 优化使用较少 TEMP 的查询
  • 关于sql - Oracle 11g - 临时表空间段未发布(Oracle 错误?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31385650/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com