オブジェクトのAnalyze状況を確認する

出力結果の説明:

所有者(表) :表の所有者
所有者(索引) :索引の所有者
表名 :表の名前
パーティション名 :パーティションの名前
索引名 :索引の名前
分析済(表) :表の分析状態
分析済(パーティション) :パーティションの分析状態
分析済(索引) :索引の分析状態

 

set echo off
set lines 120
set pages 1000

clear col
ttitle off

col TABLE_OWNER form a12 head “所有者|(表)”
col table_name form a25 head “表名”
col IND_OWNER form a12 head “所有者|(索引)”
col INDEX_NAME form a20 head “索引名”
col PARTITIONED form a10 head “パーティション|有無”
col PARTITION_NAME form a15 head “パーティション名”
col i_ts_name form a20 head “表領域名|(索引)”

break on table_owner on table_name on index_name
spool ANALYZE状況.lis
ttitle left ‘■■■■ オブジェクトのAnalyze状況一覧 ■■■■’

select
TABLE_OWNER,
TABLE_NAME,
IND_OWNER,
INDEX_NAME,
PARTITIONED,
PARTITION_NAME,
I_TS_NAME
from
(
select
dt.owner TABLE_OWNER,
dt.table_name,
di.owner IND_OWNER,
di.index_name INDEX_NAME,
‘—‘ PARTITION_NAME,
‘NO’ PARTITIONED,
di.tablespace_name I_TS_NAME
from
sys.dba_indexes di,
sys.dba_tables dt
where dt.owner not in
(‘SYS’,’SYSTEM’,’CTXSYS’,’MDSYS’,’ORDSYS’,’AURORA$JIS$UTILITY$’,’OSE$HTTP$ADMIN’,’OUTLN’)
and di.partitioned=’NO’
and dt.owner = di.table_owner
and dt.table_name = di.table_name
union
select
dt.owner TABLE_OWNER,
dt.table_name,
dip.INDEX_OWNER INDEX_OWNER,
dip.index_name INDEX_NAME,
dip.partition_name PARTITION_NAME,
‘YES’ PARTITIONED,
dip.tablespace_name I_TS_NAME
from
sys.dba_indexes di,
sys.dba_ind_partitions dip,
sys.dba_tables dt
where dt.owner not in
(‘SYS’,’SYSTEM’,’CTXSYS’,’MDSYS’,’ORDSYS’,’AURORA$JIS$UTILITY$’,’OSE$HTTP$ADMIN’,’OUTLN’)
and di.partitioned=’YES’
and dt.owner = di.table_owner
and dt.table_name = di.table_name
and di.owner= dip.index_owner
and di.index_name = dip.index_name
)
order by table_owner,table_name,INDEX_NAME,PARTITION_NAME
/

spool off
clear col
ttitle off