oracle查看空间temp,查看单个SQL消耗TEMP表空间以及TEMP表空间使用率

本文介绍了如何在Oracle数据库中查看TEMP表空间的使用率,分别提供了11G和10G版本的查询语句。此外,还提供了查询单个SESSION消耗TEMP表空间的详细方法,包括SESSION信息、SQL文本和使用的内存大小。这对于数据库性能优化和资源管理具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看TEMP表空间使用率

--11G下:

select tablespace_name,round(free_space/1024/1024/1024,2) "free(GB)",round(tablespace_size/1024/1024/1024,2) "total(GB)",round(nvl(free_space,0)*100/tablespace_size,3) "Free percent"

from dba_temp_free_space;

--10G下:

SELECT temp_used.tablespace_name,total - used as "Free",total as "Total",round(nvl(total - used, 0) * 100 / total, 3) "Free percent"

FROM

(SELECT tablespace_name, SUM(bytes_used)/1024/1024 used

FROM GV$TEMP_SPACE_HEADER

GROUP BY tablespace_name) temp_used,

(SELECT tablespace_name, SUM(bytes)/1024/1024 total

FROM dba_temp_files

GROUP BY tablespace_name) temp_total

WHERE temp_used.tablespace_name = temp_total.tablespace_name;

查看单个SESSION消耗的TEMP表空间

SELECT S.sid,

SUM (T.blocks) * TBS.block_size / 1024 / 1024 mb_used,

S.serial# sid_serial,

s.INST_ID,

S.username,

S.osuser,

P.spid,

S.module,

P.program,

T.tablespace,

q.sql_text,

nvl(S.sql_id,S.PREV_SQL_ID) sql_id

--COUNT (*) statements

FROM gv$sort_usage T,

gv$session S,

dba_tablespaces TBS,

gv$process P,

gv$sql    q

WHERE     T.session_addr = S.saddr

AND t.INST_ID = S.INST_ID

AND S.paddr = P.addr

AND S.INST_ID = P.INST_ID

AND nvl(S.sql_id,S.PREV_SQL_ID)=q.sql_id

AND T.tablespace = TBS.tablespace_name

and s.sid='111'

GROUP BY S.sid,

S.serial#,

s.INST_ID,

S.username,

S.osuser,

P.spid,

S.module,

P.program,

TBS.block_size,

T.tablespace,

q.sql_text,

nvl(S.sql_id,S.PREV_SQL_ID)

order by 2 desc

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26084062/viewspace-1456043/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值