Oracle / 表空间
临时表空间使用情况查询
查询数据库中临时表空间的使用情况
SQL#临时表空间#使用情况#性能诊断
上生产前,先在测试库跑一遍,确认版本、权限和影响范围。涉及数据或配置变更时,先备份,备好回退方案。
脚本使用说明
这些脚本供学习和日常运维参考。执行前请自行验证脚本是否适合你的环境,做好必要备份,并承担执行风险。因使用脚本造成的损失,本站在法律允许的范围内不承担责任。依法应承担的责任仍由本站承担。
temp-space-usage-query.sql
完整脚本
Oracle · sql
SET LINESIZE 240
SET PAGESIZE 100
COLUMN username FORMAT A18
COLUMN sql_id FORMAT A13
COLUMN tablespace FORMAT A15
COLUMN module FORMAT A30
COLUMN program FORMAT A35
COLUMN temp_gb FORMAT 999,990.00
SELECT s.inst_id,
s.sid,
s.serial#,
s.username,
s.sql_id,
u.tablespace,
ROUND(SUM(u.blocks * t.block_size) / 1024 / 1024 / 1024, 2) AS temp_gb,
s.module,
s.program
FROM gv$tempseg_usage u
JOIN gv$session s
ON s.inst_id = u.inst_id
AND s.saddr = u.session_addr
JOIN dba_tablespaces t
ON t.tablespace_name = u.tablespace
GROUP BY s.inst_id,
s.sid,
s.serial#,
s.username,
s.sql_id,
u.tablespace,
s.module,
s.program
ORDER BY temp_gb DESC;