ORA-01652:无法扩展临时空间

时间:2019-02-03 09:56:01

标签: oracle ora-01652

我有一个过程,该过程中的一个特定查询生成了大约50GB的临时空间,在执行几次后便导致以下异常:

SQL状态[72000];错误代码[1652]; ORA-01652:无法在表空间TEMP中将临时段扩展128。

DBA指向存储过程中需要重写的以下查询。以下查询中使用的表小于0.1 GB,但查询会生成50GB的临时空间!

SELECT tab1.ORDID ID1, tab2.ORDID ID2
FROM (
    SELECT 
    OT.ORDID,
    CONNECT_BY_ROOT OT.UNIQ_ORIG_KEY ORIG_UID
    FROM order_tab OT, status_tab ST
    WHERE OT.otype IN ('A','B') 
    AND OT.order_uid IS NULL 
    AND OT.BATCH_ID = ST.BATCH_ID 
    AND ST.CT_DATE = :A1 
    AND ST.BSTATUS = 1 
    CONNECT BY PRIOR OT.UNIQ_KEY = OT.UNIQ_ORIG_KEY 
      ) tab1 , order_tab tab2
WHERE tab2.ORD_VERID = 1 
AND tab1.ORIG_UID = tab2.UNIQ_KEY 
ORDER BY ID1;

请有人帮忙有效地重写查询,以减少临时空间利用率。数据库使用Oracle 12c。

0 个答案:

没有答案