当前位置: 代码迷 >> 综合 >> oracle temp 占用不释放
  详细解决方案

oracle temp 占用不释放

热度:45   发布时间:2023-09-05 19:25:48.0

select a.username,

a.sid||','||a.serial# sid,

b.sql_id ,

b.tablespace,

b.content,

b.blocks*c.block_size/1024/1024 size_m

from v$session a ,

v$tempseg_usage b,

dba_tablespace c

where a.saddr = b.session_addr

and b.tablespace = c.tablespace_name

order by b.tablespace , b.blocks ;

 

1、会话已不运行sql,但temp仍不释放

wm_concat函数,在不同版本中返回不同数据类型

11.2.0.1中返回varchar2

11.2.0.2中返回clob,clob占用temp空间不会自动释放

建议 wm_concat 换成 listagg 函数。

2. lob_data类型占用temp资源,需要在程序中调整主动回收。

3. merg join cartesian, hash join outer 占用大量临时表空间

4. connect by prior 也占用大量临时内存

 

 

  相关解决方案