表領域の断片化状況を確認する

Pocket

/*
|| 表領域の断片化状況
*/
set echo off
set lines 120
set pages 100

clear col
ttitle off

–■PARAM_VALUEのサイズで出力幅(set lines以内)を調整
col TABLESPACE  form a20
col FRAGMENTS   form 999
col MAX_FREE    form 999,999,999
col TOTAL       form 999,999,999
col TOTAL_FREE  form 999,999,999,999    head “FREE(MB)”
col USED        form 999                head “USED(%)”

ttitle left ‘■■■■ 表領域の断片化状況 ■■■■’
spool tbs_frag_info.lis

SELECT
total.tablespace_name TABLESPACE
,FRAGMENTS
,max_free_bytes/(1024*1024) MAX_FREE
,total_bytes/(1024*1024) TOTAL
,total_free_bytes/(1024*1024) TOTAL_FREE
,(1-nvl(total_free_bytes, 0)/total_bytes)*100 USED
FROM (
SELECT
SUM(bytes) TOTAL_BYTES
,tablespace_name
FROM  dba_data_files
GROUP BY tablespace_name
) TOTAL
,(
SELECT
SUM(bytes) TOTAL_FREE_BYTES
,MAX(bytes) MAX_FREE_BYTES
,COUNT(bytes)   FRAGMENTS
,tablespace_name
FROM  dba_free_space
GROUP BY tablespace_name
) FREE
WHERE total.tablespace_name = free.tablespace_name(+)
ORDER BY 1
;
spool off
clear col
ttitle off

投稿者:

oracledba

長年Oracleエンジニアを中心として、業務に携わってきました。 このサイトが少しでもお役に立てれば幸いです。

「表領域の断片化状況を確認する」への45件のフィードバック

  1. ピンバック: Google
  2. ピンバック: Google
  3. ピンバック: Google
  4. ピンバック: Google

コメントを残す