2026-03-12 20:23:15
This commit is contained in:
186
vdh/part_info.sql
Normal file
186
vdh/part_info.sql
Normal file
@@ -0,0 +1,186 @@
|
||||
-- show information about a partitoned table
|
||||
|
||||
set verify off
|
||||
set linesize 300
|
||||
|
||||
column owner format a30
|
||||
column table_name format a30
|
||||
column column_name format a30
|
||||
column interval format a40
|
||||
#column high_value format a25
|
||||
column high_value format a85
|
||||
column interval format a3
|
||||
column subpartition_count format 9999999 heading "#SUBPART"
|
||||
column partition_name format a30
|
||||
column subpartition_name format a30
|
||||
column column_position format 99999
|
||||
column interval format a3
|
||||
column subpartition_position format 99999 heading "POS"
|
||||
column partition_position format 99999 heading "POS"
|
||||
column MB format 9G999G990D99
|
||||
|
||||
accept OWNER prompt 'Owner: '
|
||||
accept TABLE prompt 'Table Name: '
|
||||
|
||||
|
||||
prompt
|
||||
prompt ###basic info
|
||||
|
||||
select
|
||||
owner,
|
||||
table_name,
|
||||
partitioning_type,
|
||||
subpartitioning_type,
|
||||
status,
|
||||
interval
|
||||
from
|
||||
dba_part_tables
|
||||
where
|
||||
owner = '&&OWNER'
|
||||
and table_name = '&&TABLE'
|
||||
;
|
||||
|
||||
|
||||
prompt
|
||||
prompt ###info on partition columns
|
||||
|
||||
select
|
||||
column_position,
|
||||
column_name
|
||||
from
|
||||
dba_part_key_columns
|
||||
where
|
||||
owner = '&&OWNER'
|
||||
and name = '&&TABLE'
|
||||
order by
|
||||
column_position
|
||||
;
|
||||
|
||||
|
||||
prompt
|
||||
prompt ###info on sub-partition columns
|
||||
|
||||
select
|
||||
column_position,
|
||||
column_name
|
||||
from
|
||||
dba_subpart_key_columns
|
||||
where
|
||||
owner = '&&OWNER'
|
||||
and name = '&&TABLE'
|
||||
order by
|
||||
column_position
|
||||
;
|
||||
|
||||
|
||||
prompt
|
||||
prompt ###details on partitions
|
||||
|
||||
compute sum of mb on report
|
||||
|
||||
select
|
||||
part.partition_name,
|
||||
part.composite,
|
||||
part.subpartition_count,
|
||||
part.high_value,
|
||||
part.partition_position,
|
||||
part.tablespace_name,
|
||||
part.compression,
|
||||
part.compress_for,
|
||||
part.interval,
|
||||
part.segment_created,
|
||||
(seg.bytes/1024/1024) MB
|
||||
from
|
||||
dba_tab_partitions part,
|
||||
dba_segments seg
|
||||
where
|
||||
part.table_owner = seg.owner(+)
|
||||
and part.table_name = seg.segment_name(+)
|
||||
and part.partition_name = seg.partition_name(+)
|
||||
and part.table_owner = '&&OWNER'
|
||||
and part.table_name = '&&TABLE'
|
||||
order by
|
||||
part.partition_position
|
||||
;
|
||||
|
||||
clear computes
|
||||
|
||||
|
||||
prompt
|
||||
prompt ###details on sub-partitions
|
||||
|
||||
break on partition_name skip page duplicates
|
||||
compute sum of mb on partition_name
|
||||
compute sum of mb on report
|
||||
/*
|
||||
select
|
||||
spart.partition_name,
|
||||
spart.subpartition_name,
|
||||
spart.high_value,
|
||||
spart.subpartition_position,
|
||||
spart.tablespace_name,
|
||||
spart.compression,
|
||||
spart.compress_for,
|
||||
spart.interval,
|
||||
spart.segment_created,
|
||||
(seg.bytes/1024/1024) MB
|
||||
from
|
||||
dba_tab_subpartitions spart,
|
||||
dba_tab_partitions part,
|
||||
dba_segments seg
|
||||
where
|
||||
spart.table_owner = part.table_owner
|
||||
and spart.table_name = part.table_name
|
||||
and spart.partition_name = part.partition_name
|
||||
and spart.table_owner = seg.owner(+)
|
||||
and spart.table_name = seg.segment_name(+)
|
||||
and spart.subpartition_name = seg.partition_name(+)
|
||||
and spart.table_owner = '&&OWNER'
|
||||
and spart.table_name = '&&TABLE'
|
||||
order by
|
||||
part.partition_position,
|
||||
spart.subpartition_position
|
||||
;
|
||||
|
||||
*/
|
||||
|
||||
--switched to ansi join syntax (as excercise ;-)
|
||||
select
|
||||
spart.partition_name,
|
||||
spart.subpartition_name,
|
||||
spart.high_value,
|
||||
spart.subpartition_position,
|
||||
spart.tablespace_name,
|
||||
spart.compression,
|
||||
spart.compress_for,
|
||||
spart.interval,
|
||||
spart.segment_created,
|
||||
(seg.bytes/1024/1024) MB
|
||||
from
|
||||
dba_tab_subpartitions spart
|
||||
join dba_tab_partitions part
|
||||
on ( part.table_owner = spart.table_owner
|
||||
and part.table_name = spart.table_name
|
||||
and part.partition_name = spart.partition_name
|
||||
)
|
||||
left outer join dba_segments seg
|
||||
on ( seg.owner = spart.table_owner
|
||||
and seg.segment_name = spart.table_name
|
||||
and seg.partition_name = spart.subpartition_name
|
||||
)
|
||||
where
|
||||
spart.table_owner = '&&OWNER'
|
||||
and spart.table_name = '&&TABLE'
|
||||
order by
|
||||
part.partition_position,
|
||||
spart.subpartition_position
|
||||
;
|
||||
|
||||
|
||||
clear breaks
|
||||
clear computes
|
||||
|
||||
|
||||
undef OWNER
|
||||
undef TABLE
|
||||
|
||||
Reference in New Issue
Block a user