便利ツールを置いていく

自分用メモです

しかしだめだ。
変な張り付き方する・・・・
はてなの記述が適用されるな><


========================================================
SQLPLUS USER/PASS@SID @TS_SPACE_CHECK.sql USER_表領域容量.csv
EXIT

========================================================



=================TS_SPACE_CHECK.sql=======================================

SET ECHO OFF

    • タイトルを表示しない

SET HEADING OFF

SET LINESIZE 500
SET PAGESIZE 0

SET TRIMOUT ON
SET TRIMSPOOL ON

SPOOL ./&1

    • クエリーの結果の件数を表示しない

SET FEEDBACK OFF

    • タイトル行

SELECT
'表領域, 合計容量 (MB), 空き容量 (MB), 空き/合計 (%), 内容, 状態'
FROM
DUAL;

    • 永続、UNDO表領域

SELECT
T1.TABLESPACE_NAME || ',' || D1.SIZE_MB || ',' || F1.FREE_SIZE_MB || ',' || CEIL (F1.FREE_SIZE_MB/D1.SIZE_MB * 100) || ',' || T1.CONTENTS || ',' || T1.STATUS
FROM
(
SELECT T.TABLESPACE_NAME, T.CONTENTS, T.STATUS
FROM DBA_TABLESPACES T
WHERE T.CONTENTS != 'TEMPORARY'
) T1,
(
SELECT D.TABLESPACE_NAME, CEIL(SUM(D.BYTES)/1024/1024) AS SIZE_MB
FROM DBA_DATA_FILES D
GROUP BY D.TABLESPACE_NAME
) D1,
(
SELECT F.TABLESPACE_NAME, CEIL(SUM(F.BYTES)/1024/1024) FREE_SIZE_MB
FROM USER_FREE_SPACE F
GROUP BY F.TABLESPACE_NAME
) F1
WHERE
T1.TABLESPACE_NAME = D1.TABLESPACE_NAME (+) AND
T1.TABLESPACE_NAME = F1.TABLESPACE_NAME (+)
ORDER BY
D1.TABLESPACE_NAME;

    • 一時表領域

SELECT
T1.TABLESPACE_NAME || ',' || D1.SIZE_MB || ',' || '???' || ',' || '???' || ',' || T1.CONTENTS || ',' || T1.STATUS
FROM
(
SELECT T.TABLESPACE_NAME, T.CONTENTS, T.STATUS
FROM DBA_TABLESPACES T
WHERE T.CONTENTS = 'TEMPORARY'
) T1,
(
SELECT D.TABLESPACE_NAME, CEIL(SUM(D.BYTES)/1024/1024) AS SIZE_MB
FROM DBA_TEMP_FILES D
GROUP BY D.TABLESPACE_NAME
) D1
WHERE
T1.TABLESPACE_NAME = D1.TABLESPACE_NAME (+)
ORDER BY
D1.TABLESPACE_NAME;

SPOOL OFF
EXIT 0
========================================================


========================================================

SET ECHO OFF

    • タイトルを表示しない

SET HEADING OFF

SET LINESIZE 500
SET PAGESIZE 0

SET TRIMOUT ON
SET TRIMSPOOL ON

SPOOL ./&1

    • クエリーの結果の件数を表示しない

SET FEEDBACK OFF

    • タイトル行

SELECT
'表領域, ファイル, 合計容量 (MB), 空き容量 (MB), 空き/合計 (%), 内容, 状態'
FROM
DUAL;

    • 永続、UNDO表領域

SELECT
CASE DF.RNO
WHEN 1 THEN
T1.TABLESPACE_NAME || ',' || DF.FILE_NAME || ',' || DF.MBYTES || ',' || DF.FREE_MBYTES || ',' || CEIL (DF.FREE_MBYTES/DF.MBYTES * 100) || ',' || T1.CONTENTS || ',' || T1.STATUS
ELSE
'〃' || ',' || DF.FILE_NAME || ',' || DF.MBYTES || ',' || DF.FREE_MBYTES || ',' || CEIL (DF.FREE_MBYTES/DF.MBYTES * 100) || ',' || '〃' || ',' || '〃'
END
FROM
(
SELECT T.TABLESPACE_NAME, T.CONTENTS, T.STATUS
FROM DBA_TABLESPACES T
WHERE T.CONTENTS != 'TEMPORARY'
) T1,
(
SELECT
DB.TABLESPACE_NAME, DB.FILE_NAME, DB.RNO, DB.MBYTES, F1.FREE_MBYTES
FROM
(
SELECT
DA.TABLESPACE_NAME,
DA.FILE_NAME,
DA.FILE_ID,
DA.BYTES/1024/1024 AS MBYTES,
RANK() OVER (PARTITION BY DA.TABLESPACE_NAME ORDER BY DA.FILE_NAME) AS RNO
FROM
DBA_DATA_FILES DA
) DB,
(
SELECT F.TABLESPACE_NAME, F.FILE_ID, CEIL(SUM(F.BYTES)/1024/1024) AS FREE_MBYTES
FROM USER_FREE_SPACE F
GROUP BY F.TABLESPACE_NAME, F.FILE_ID
) F1
WHERE
DB.TABLESPACE_NAME = F1.TABLESPACE_NAME (+) AND
DB.FILE_ID = F1.FILE_ID
ORDER BY
DB.TABLESPACE_NAME, DB.FILE_NAME, DB.RNO
) DF
WHERE
T1.TABLESPACE_NAME = DF.TABLESPACE_NAME (+)
ORDER BY
T1.TABLESPACE_NAME, DF.RNO;


SPOOL OFF
EXIT 0

========================================================