社内SEの話

日々起きたことの記録用

Oracle 一時領域の使用率を表示する

↓プログラミングで副業を考えたらこちら↓

Oracle12cでOrder byした時に異常に応答が遅くなったので、色々調べたところ一時領域不足にたどり着きました。

その際に調べたSQLです

SYSDBAでログインしてSQLを書きます

SQL

SELECT
DTF.TABLESPACE_NAME as 表領域,
ROUND(DTF.BYTES / POWER(1024,2), 0) as 割当量MB,
ROUND(TEP.BYTES_CACHED / POWER(1024,2), 0) as 空容量MB,
ROUND(TEP.BYTES_CACHED / DTF.BYTES \* 100, 2) as \"使用率%\"
FROM
SYS.DBA_TEMP_FILES DTF
left join V\$TEMP_EXTENT_POOL TEP on TEP.FILE_ID = DTF.FILE_ID
inner join V\$TEMPFILE VF on DTF.FILE_ID = VF.FILE#

SQL

結果

TEMP 5100 5044 98.9

解説

下記のドキュメントから使用率を求めました

docs.oracle.com

docs.oracle.com

docs.oracle.com