0% found this document useful (0 votes)
309 views

Space LargestTables 11g+

This document contains the SQL code for querying database tables and views to collect metadata and statistics about database objects like tables, indexes, and partitions. The queries retrieve information on table and index sizes, compression settings, number of columns and partitions. The results will be used to analyze database storage usage and make recommendations for optimization.

Uploaded by

iturra_pablo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
309 views

Space LargestTables 11g+

This document contains the SQL code for querying database tables and views to collect metadata and statistics about database objects like tables, indexes, and partitions. The queries retrieve information on table and index sizes, compression settings, number of columns and partitions. The results will be used to analyze database storage usage and make recommendations for optimization.

Uploaded by

iturra_pablo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 12

SELECT /*+ ALLOW_HINTS */

NULL OWNER, NULL TABLE_NAME, NULL B, NULL P, NULL L, NULL U, NULL COMP, NULL POS,

NULL COLS, NULL TOTAL_GB, NULL "TOTAL_%", NULL "CUM_%", NULL "PART.",
NULL TABLE_GB, NULL TAB_TABSPACE, NULL "IND.", NULL INDEX_GB,
NULL IND_TABSPACE, NULL LOBS, NULL LOB_GB FROM DUAL WHERE 1 = 0
UNION ALL (
SELECT /* SAP Note 2388483 v88 */
NULL OWNER, NULL TABLE_NAME, NULL B, NULL P, NULL L, NULL U, NULL COMP, NULL POS,

NULL COLS, NULL TOTAL_GB, NULL "TOTAL_%", NULL "CUM_%", NULL "PART.",
NULL TABLE_GB, NULL TAB_TABSPACE, NULL "IND.", NULL INDEX_GB,
NULL IND_TABSPACE, NULL LOBS, NULL LOB_GB FROM DUAL WHERE 1 = 0
) UNION ALL ( SELECT * FROM (
WITH BASIS_INFO AS
( SELECT /*+ MATERIALIZE OPT_PARAM('OPTIMIZER_DYNAMIC_SAMPLING', 6)
OPT_PARAM('_OPTIMIZER_DISTINCT_AGG_TRANSFORM', 'FALSE') */
OWNER,
TABLESPACE_NAME,
TABLE_NAME,
NUM_RECORDS,
MIN_TOTAL_SIZE_MB,
ONLY_BASIS_TABLES,
ONLY_PART_ENGINE_TABLES,
DECODE(MIN_COLUMN_THRESHOLD, -1, 256, MIN_COLUMN_THRESHOLD)
MIN_COLUMN_THRESHOLD
FROM
( SELECT
'SAP%' OWNER,
'%' TABLESPACE_NAME,
'%' TABLE_NAME,
100 NUM_RECORDS,
-1 MIN_TOTAL_SIZE_MB,
' ' ONLY_BASIS_TABLES,
' ' ONLY_PART_ENGINE_TABLES,
230 MIN_COLUMN_THRESHOLD /* minimum number of columns for
compression exception */
/* minimum number of columns for compression exception */
FROM
DUAL
)
),
SEGMENTS AS
( SELECT /*+ MATERIALIZE */
S.OWNER,
S.SEGMENT_NAME,
S.PARTITION_NAME,
S.SEGMENT_TYPE,
S.TABLESPACE_NAME,
S.BYTES
FROM
BASIS_INFO BI,
DBA_SEGMENTS S
WHERE
S.TABLESPACE_NAME LIKE BI.TABLESPACE_NAME AND
S.OWNER LIKE BI.OWNER
),
TOTAL_SEGMENT_SIZE AS
( SELECT /*+ MATERIALIZE */
SUM(BYTES) DB_NET_SIZE_BYTE
FROM
SEGMENTS
),
TABLES AS
( SELECT /*+ MATERIALIZE */
T.OWNER,
T.TABLE_NAME,
T.TABLESPACE_NAME,
MAX(DECODE(NVL(T.COMPRESSION, TP.COMPRESSION), 'ENABLED',
DECODE(NVL(T.COMPRESS_FOR, TP.COMPRESS_FOR),
'OLTP', 'Y', 'ADVANCED', 'Y', 'BASIC', 'B', 'H'), 'N')) COMPRESSION
FROM
BASIS_INFO BI,
DBA_TABLES T,
DBA_TAB_PARTITIONS TP
WHERE
T.OWNER = TP.TABLE_OWNER (+) AND
T.TABLE_NAME = TP.TABLE_NAME (+) AND
T.OWNER LIKE BI.OWNER
GROUP BY
T.OWNER,
T.TABLE_NAME,
T.TABLESPACE_NAME
),
INDEXES AS
( SELECT /*+ MATERIALIZE */
I.OWNER,
I.TABLE_NAME,
I.INDEX_NAME,
I.TABLESPACE_NAME,
MAX(DECODE(I.UNIQUENESS, 'UNIQUE', 'X', ' ')) UNIQUENESS,
MAX(DECODE(NVL(I.COMPRESSION, IP.COMPRESSION),
'ENABLED', 'Y', 'ADVANCED LOW', 'L', 'ADVANCED HIGH', 'H', 'N')) COMPRESSION
FROM
DBA_INDEXES I,
DBA_IND_PARTITIONS IP
WHERE
I.OWNER = IP.INDEX_OWNER (+) AND
I.INDEX_NAME = IP.INDEX_NAME (+)
GROUP BY
I.OWNER,
I.TABLE_NAME,
I.INDEX_NAME,
I.TABLESPACE_NAME
),
COLUMNS AS
( SELECT /*+ MATERIALIZE */
T.OWNER,
T.TABLE_NAME,
COUNT(*) NUM_COLUMNS,
DECODE(SUM(DECODE(TC.DATA_TYPE, 'LONG', 1, 'LONG RAW', 1, 0)), 0, ' ', 'X')
LONG_COLUMN,
DECODE(SUM(DECODE(TC.COLUMN_NAME, 'RELID', 1, 'SRTF2', 1, 'CLUSTR', 1,
'CLUSTD', 1, 0)), 4, 'X', ' ') INDX_COLUMNS
FROM
TABLES T,
DBA_TAB_COLUMNS TC
WHERE
T.OWNER = TC.OWNER AND
T.TABLE_NAME = TC.TABLE_NAME
GROUP BY
T.OWNER,
T.TABLE_NAME
),
LOBS AS
( SELECT /*+ MATERIALIZE */
OWNER,
TABLE_NAME,
SEGMENT_NAME,
TABLESPACE_NAME,
INDEX_NAME,
COLUMN_NAME,
DECODE(COMPRESSION, 'NO', 'N', 'NONE', 'N', 'LOW', '1', 'MEDIUM', '2', 'HIGH',
'3', 'Y') COMPRESSION,
DECODE(SECUREFILE, 'YES', 'S', 'B') LOB_TYPE
FROM
DBA_LOBS
),
TABLE_SEGMENT_MAPPING AS
( SELECT /*+ MATERIALIZE */
T.OWNER,
T.TABLE_NAME,
MIN(NVL(T.TABLESPACE_NAME, S.TABLESPACE_NAME)) TABLESPACE_NAME,
'TABLE' SEGMENT_TYPE,
1 SEGMENTS,
SUM(DECODE(S.PARTITION_NAME, NULL, 0, 1)) PARTITIONS,
SUM(S.BYTES) BYTES,
MAX(T.COMPRESSION) COMPRESSION,
NULL ADDITIONAL_INFO
FROM
SEGMENTS S,
TABLES T
WHERE
S.OWNER = T.OWNER AND
S.SEGMENT_NAME = T.TABLE_NAME AND
S.SEGMENT_TYPE IN ('TABLE', 'TABLE PARTITION', 'TABLE SUBPARTITION')
GROUP BY
T.OWNER,
T.TABLE_NAME
UNION ALL
( SELECT
I.OWNER OWNER,
I.TABLE_NAME TABLE_NAME,
MIN(S.TABLESPACE_NAME) TABLESPACE_NAME,
'INDEX' SEGMENT_TYPE,
COUNT(DISTINCT(I.INDEX_NAME)) SEGMENTS,
SUM(DECODE(S.PARTITION_NAME, NULL, 0, 1)) PARTITIONS,
SUM(S.BYTES) BYTES,
MAX(I.COMPRESSION) COMPRESSION,
MAX(I.UNIQUENESS) ADDITIONAL_INFO
FROM
SEGMENTS S,
INDEXES I
WHERE
S.OWNER = I.OWNER AND
S.SEGMENT_NAME = I.INDEX_NAME AND
S.SEGMENT_TYPE IN ('INDEX', 'INDEX PARTITION', 'INDEX SUBPARTITION')
GROUP BY
I.OWNER,
I.TABLE_NAME
)
UNION ALL
( SELECT
L.OWNER OWNER,
L.TABLE_NAME TABLE_NAME,
MIN(S.TABLESPACE_NAME) TABLESPACE_NAME,
'LOB' SEGMENT_TYPE,
COUNT(DISTINCT(L.COLUMN_NAME)) SEGMENTS,
SUM(DECODE(S.PARTITION_NAME, NULL, 0, 1)) PARTITIONS,
SUM(S.BYTES) BYTES,
DECODE(MAX(L.COMPRESSION), '1', 'L', '2', 'M', '3', 'H', MAX(L.COMPRESSION))
COMPRESSION,
MAX(L.LOB_TYPE) ADDITIONAL_INFO
FROM
SEGMENTS S,
LOBS L
WHERE
S.OWNER = L.OWNER AND
S.SEGMENT_NAME IN ( L.SEGMENT_NAME, L.INDEX_NAME ) AND
S.SEGMENT_TYPE IN ('LOBSEGMENT', 'LOBINDEX', 'LOB PARTITION')
GROUP BY
L.OWNER,
L.TABLE_NAME
)
),
PARTITIONING_ENGINE_TABLES AS
( SELECT /*+ MATERIALIZE */
OWNER,
TABLE_NAME
FROM
DBA_TABLES
WHERE
TABLE_NAME IN
( 'BDCP', 'BDCP2', 'BDCPS', 'CDCLS', 'CDHDR', 'CKIS', 'CKMI1', 'COEP',
'DBERCHZ1', 'DBERCHZ2', 'DBERCHZ3', 'DBERDL', 'DBERDLB', 'DBERDTAX',
'DFKKKO', 'DFKKOP', 'DFKKOPK', 'DFKKOPW', 'DFKKREP06', 'EBAN',
'EDI40', 'EDIDC', 'EDIDS', 'EKBE', 'EKES', 'EKET', 'EKKN', 'EKKO',
'EKPA', 'EKPO', 'FKKDEFREV', 'GLPCA', 'IMRG', 'LIPS', 'RESB',
'SWWLOGHIST', 'SWWWIHEAD', 'SWW_CONT', 'VBAP', 'VBRP'
)
),
BASIS_TABLES AS
( SELECT /*+ MATERIALIZE */
OWNER,
TABLE_NAME
FROM
DBA_TABLES
WHERE
TABLE_NAME IN
( '/AIF/ALERT_IDX', '/AIF/CDATA', '/AIF/CDATAF', '/AIF/MMSG_VARS',
'/AIF/PERS_QMSG', '/AIF/REP_MSG_CNT', '/AIF/T_MMSG_IDX', '/AIF/PERS_XML',
'/IWBEP/SU_ERRLOG', '/IWFND/L_MET_COL', '/IWFND/L_MET_DAT',
'/IWFND/SU_ERRLOG,', 'IWFND/SU_STATUS', '/SAPAPO/LISMAP',
'/SAPAPO/LISLOG', '/SAPTRX/APPTALOG', '/SAPTRX/AOTREF', '/SCMTMS/D_MSGREG',
'/SCMTMS/RES_POS',
'/SDF/CSSIZING', '/SDF/HDBSIZING', '/SDF/HDBTABSIZES', '/SDF/INDX',
'/SDF/RSSIZING',
'/SDF/IFR_TRFCQIN', '/SDF/IFR_TRFCQOU', '/SDF/MON', '/SDF/SMON_CLUST',
'/SDF/SMON_WPINFO',
'/SDF/ZQLMD', '/SSF/PTAB', '/TRP/RES_TRKLOG', '/TXINTF/TRACE',
'APQD', 'ARDB_STAT0', 'ARDB_STAT1', 'ARDB_STAT2', 'ARFCSSTATE', 'ARFCSDATA',
'ARFCRSTATE', 'BBPCONT', 'BBP_TRANSXSTRING',
'BALC', 'BALDAT', 'BALHDR', 'BALHDRP', 'BAL_INDX', 'BALM', 'BALMP', 'BC_MSG',
'BC_MSG_LOG', 'BC_MSG_VERSION', 'BC_MSG_AUDIT', 'BC_SLD_CHANGELOG',
'BDCP', 'BDCPS', 'BDCP2', 'BCST_CAM', 'BCST_SR', 'BTCEVTHISTORY', 'CCMLOG',
'CCMLOGD', 'CCMSESSION', 'CCMOBJLST', 'CCMOBJKEYS',
'COIX_DATA40', 'COUNT_CA_DETAIL', 'COUNT_CA_ERR_MSG', 'COUNT_CA_HEADER',
'COUNT_CA_ITEM', 'COUNT_CA_PRODUCT',
'CRM_ICI_TRACES', 'CROSS', 'DB2DB02TBSIZE', 'DB2DB02TSSIZE', 'D010TAB',
'DBMSGORA', 'DBTABLOG', 'DBTABPRT', 'DDLOG', 'DDPRS',
'DFKKDOUBTD_W', 'DFKKDOUBTD_RET_W', 'DRFD_OBJ_REP_STA', 'DRFD_SERVOUT_LOG',
'DRVLOG_HEADER', 'DRVLOG_ITEM', 'DRVLOG_FIELDVAL', 'DRVLOG_TRAIL',
'DSVASRESULTSGEN', 'DSVASRESULTSSEL', 'DSVASRESULTSCHK',
'DSVASRESULTSATTR', 'DSVASSESSADMIN', 'DYNPSOURCE', 'DYNPLOAD', 'ECLOG_CALL',
'ECLOG_DATA',
'ECLOG_EXEC', 'ECLOG_EXT', 'ECLOG_HEAD', 'ECLOG_RESTAB', 'ECLOG_SCNT',
'ECLOG_SCR', 'ECLOG_SEL', 'ECLOG_XDAT',
'EDI30C', 'EDI40', 'EDID4', 'EDIDC', 'EDIDOC', 'EDIDS', 'ENHLOG',
'FSBP_CNS_IMAGE', 'GRACSODREPDATA', 'GRACSODREPINDEX', 'GRACSODREPSTATUS',
'GVD_BGPROCESS', 'GVD_BUFF_POOL_ST', 'GVD_LATCH_MISSES',
'GVD_ENQUEUE_STAT', 'GVD_FILESTAT', 'GVD_INSTANCE', 'GVD_PGASTAT',
'GVD_PGA_TARGET_A', 'GVD_PGA_TARGET_H',
'GVD_SERVERLIST', 'GVD_SESSION_EVT', 'GVD_SESSION_WAIT', 'GVD_SESSION',
'GVD_PROCESS', 'GVD_PX_SESSION',
'GVD_WPTOTALINFO', 'GVD_ROWCACHE', 'GVD_SEGMENT_STAT', 'GVD_SESSTAT',
'GVD_SGACURRRESIZ', 'GVD_SGADYNFREE',
'GVD_SGA', 'GVD_SGARESIZEOPS', 'GVD_SESS_IO', 'GVD_SGASTAT',
'GVD_SGADYNCOMP', 'GVD_SEGSTAT', 'GVD_SPPARAMETER',
'GVD_SHAR_P_ADV', 'GVD_SQLAREA', 'GVD_SQL', 'GVD_SQLTEXT',
'GVD_SQL_WA_ACTIV','GVD_SQL_WA_HISTO',
'GVD_SQL_WORKAREA', 'GVD_SYSSTAT', 'GVD_SYSTEM_EVENT', 'GVD_DATABASE',
'GVD_CURR_BLKSRV', 'GVD_DATAGUARD_ST',
'GVD_DATAFILE', 'GVD_LOCKED_OBJEC', 'GVD_LOCK_ACTIVTY', 'GVD_DB_CACHE_ADV',
'GVD_LATCHHOLDER', 'GVD_LATCHCHILDS',
'GVD_LATCH', 'GVD_LATCHNAME', 'GVD_LATCH_PARENT', 'GVD_LIBRARYCACHE',
'GVD_LOCK', 'GVD_MANGD_STANBY', 'GVD_OBJECT_DEPEN',
'GVD_PARAMETER', 'GVD_LOGFILE', 'GVD_PARAMETER2', 'GVD_TEMPFILE',
'GVD_UNDOSTAT', 'GVD_WAITSTAT',
'ICFRECORDER', 'IDOCREL', 'INDX', 'JBDCPHDR2', 'JBDCPPOS2', 'JOB_LOG',
'MDMFDBID', 'MDMFDBEVENT', 'MDMFDBPR',
'MERGED_TRACES_FOR_COCKPIT', 'NRIVSHADOW', 'OBJECT_HISTORY', 'ODQDATA',
'ODQDATA_F', 'ORA_SNAPSHOT', 'ORA_SQLC_DATA', 'ORA_SQLC_HEAD',
'POC_D_EVTQ', 'POC_D_EVTQ_PREBO', 'POC_D_EVTQ_CNTXT', 'SWFRCNTXML',
'SWFREVTPOQ',
'PPFTMETHRU', 'PPFTTRIGG', 'QRFC_I_EXE_STATE', 'QRFC_I_QIN',
'QRFC_I_QIN_LOCK', 'QRFC_I_SDATA', 'QRFC_I_QIN_TOP', 'QRFC_I_UNIT',
'QRFC_I_UNIT_LOCK',
'QRFCLOG', 'QRFCTRACE', 'REPOSRC', 'REPOLOAD', 'RSBATCHCTRL',
'RSBATCHCTRL_PAR', 'RSBATCHDATA', 'RSBATCHHEADER', 'RSBATCHPROT', 'RSBATCHSTACK',
'RSBERRORLOG',
'RSBKDATA', 'RSBKDATAINFO', 'RSBKDATAPAKID', 'RSBKDATAPAKSEL',
'RSBERRORCROSS', 'RSBKSELECT', 'RSBMLOGPAR', 'RSBMLOGPAR_DTP',
'RSBMNODES', 'RSBMONMESS', 'RSBMONMESS_DTP', 'RSBMREQ_DTP', 'RSCRTDONE',
'RSDDSTATAGGR', 'RSDDSTATAGGRDEF',
'RSDDSTATCOND', 'RSDDSTATDTP', 'RSDDSTATDELE', 'RSDDSTATDM',
'RSDDSTATEVDATA', 'RSDDSTATHEADER', 'RSDDSTATINFO',
'RSDDSTATLOGGING', 'RSDELDONE', 'RSDRDLOGHEADER', 'RSDRDLOGPOSITION',
'RSECHIE_CL', 'RSECSESSION_CL','RSECTXT_CL', 'RSECUSERAUTH_CL','RSECVAL_CL',
'RSECLOG', 'RSERRORHEAD', 'RSERRORLOG', 'RSHIEDONE', 'RSICPROT', 'RSIXWWW',
'RSLDTDONE', 'RSMONFACT', 'RSMONICTAB',
'RSMONIPTAB', 'RSMONMESS', 'RSMONRQTAB', 'RSODSACTUPDTYPE',
'RSOTLOGOHISTORY', 'RSPCINSTANCE', 'RSPCINSTANCET',
'RSPCLOGCHAIN', 'RSPCPROCESSLOG', 'RSPCCOMMANDLOG', 'RSR_CACHE_DATA_B',
'RSR_CACHE_DATA_C', 'RSR_CACHE_DBS_BL', 'RSR_CACHE_FFB', 'RSR_CACHE_QUERY',
'RSR_CACHE_STATS', 'RSR_CACHE_VARSHB', 'RSREQDONE', 'RSRWBINDEX',
'RSRWBSTORE', 'RSSELDONE', 'RSSTATMANREQMDEL',
'RSSTATMANREQMAP', 'RSTCPDONE', 'RSTT_CALLSTACK', 'RSUICDONE',
'RSBTERRORLOG', 'RSBTERRORCHANGED',
'RSRULEDONE', 'RSWR_DATA', 'RSZWBOOKMARK', 'RSZWVIEW', 'RSZWITEM', 'RSZWOBJ',

'RSZCALC', 'RSZCEL', 'RSZCOMPIC', 'RSZELTATTR', 'RSZELTDIR', 'RSZELTPRIO',


'RSZELTPROP', 'RSZELTTXT', 'RSZELTXREF', 'RSZGLOBV', 'RSZRANGE',
'SACONT01', 'SALRT', 'SALRTCNT', 'SBCMCONT1', 'SBOI_DTRC_DETAIL',
'SBOI_DTRC_HEADER', 'SDBAH', 'SDBAD',
'SE16N_CD_DATA', 'SE16N_CD_KEY', 'SEC_CONTEXT_BLKD', 'SGOSHIST', 'SMO8FTCFG',
'SMO8FTSTP', 'SMO8_TMSG',
'SMO8_TMDAT', 'SMO8_DLIST', 'SMW3_BDOC', 'SMW3_BDOC1', 'SMW3_BDOC2',
'SMW3_BDOC4', 'SMW3_BDOC5', 'SMW3_BDOC6',
'SMW3_BDOC7', 'SMW3_BDOCQ', 'SMWT_TRC', 'SNAP', 'SPAF_ERR_LOG_MSG',
'SPAF_ERR_MSG', 'SQLMD', 'SRT_CDTC', 'SRT_MMASTER', 'SRT_MONILOG_DATA',
'SRT_MVERSIONS',
'SRT_RTC_DATA', 'SRT_RTC_DATA_RT', 'SRTM_SUB', 'SRT_RTC_DT_RT',
'SRT_SEQ_HDR_STAT', 'SRT_SEQ_REORG', 'SRT_UTIL_ERRLOG',
'SRT_UTIL_TRCFUNC', 'SRT_UTIL_TRCPERF', 'SRT_UTIL_TRCPLOA', 'SUAUTHVALTRC',
'SSCOOKIE', 'SWELOG', 'SWELTS', 'SWFREVTLOG', 'SWFGPROLEINST', 'SWP_HEADER',
'SWP_NODEWI', 'SWPNODE',
'SWPNODELOG', 'SWPSTEPLOG', 'SWW_CONT', 'SWW_CONTOB', 'SWW_WI2OBJ',
'SWWCNTP0', 'SWWCNTPADD', 'SWWEI',
'SWWLOGHIST', 'SWWLOGPARA', 'SWWWIDEADL', 'SWWWIHEAD', 'SWWWIRET', 'SWZAI',
'SWZAIENTRY', 'SWZAIRET', 'SWW_WIREGISTER', 'SWWUSERWI',
'SWFRXIHDR', 'SWFRXICNT', 'SWFRXIPRC', 'SWNCMONI', 'SWN_NOTIF',
'SWN_NOTIFTSTMP', 'SWN_SENDLOG', 'SXMSCLUR',
'SXMSCLUR2', 'SXMSCLUP', 'SXMSCLUP2', 'SXMSPFRAWH', 'SXMSPFRAWD',
'SXMSPHIST', 'SXMSPHIST2', 'SXMSPMAST', 'SXMSPMAST2',
'SXMSPEMAST', 'SXMSPEMAS2', 'SXMSPVERS', 'SXMSPVERS2', 'SXMSPERROR',
'SXMSPERRO2',
'SMW0REL', 'SOC3', 'SOFFCONT1', 'SOFM', 'SOOD', 'SOOS', 'SOST', 'SRRELROLES',
'T811E', 'T811ED', 'T811ED2', 'TAAN_DATA', 'TAAN_FLDS',
'TAAN_HEAD', 'TASKLOGS', 'BTCJOBEPP', 'TBTCO', 'TBTCP', 'TBTCS', 'TBTC_TASK',

'TBTCJOBLOG', 'TBTCJOBLOG0', 'TBTCJOBLOG1', 'TBTCJOBLOG2', 'TBTCJOBLOG3',


'TBTCJOBLOG4', 'TBTCJOBLOG5', 'TBTCJOBLOG6', 'TBTCJOBLOG7', 'TBTCJOBLOG8',
'TBTCJOBLOG9',
'TPRI_PAR', 'TRFC_I_SDATA', 'TRFC_I_UNIT', 'TRFC_I_DEST',
'TRFC_I_EXE_STATE', 'TRFC_I_ERR_STATE', 'TRFC_I_UNIT_LOCK',
'/TRP/RES_TRKLOG', 'TRFCQDATA', 'TRFCQIN', 'TRFCQOUT', 'TRFCQSTATE',
'TXMILOGRAW', 'TSPEVDEV', 'TSPEVJOB', 'TST01', 'TST03', 'UASE16N_CD_DATA',
'UASE16N_CD_KEY', 'UJ0_STAT_DTL', 'UJ0_STAT_HDR', 'UJF_DOC', 'UJF_DOC_CLUSTER',
'UPC_STATISTIC', 'UPC_STATISTIC2', 'UPC_STATISTIC3', 'VBDATA', 'VBMOD',
'VBHDR', 'VBERROR', 'VDCHGPTR', 'WBCROSSGT',
'WBCROSSI', 'XI_AF_MSG', 'XI_AF_MSG_AUDIT', 'WRI$_OPTSTAT_HISTGRM_HISTORY',
'WRI$_OPTSTAT_HISTHEAD_HISTORY',
'WRI$_OPTSTAT_IND_HISTORY', 'WRI$_OPTSTAT_TAB_HISTORY',
'WRH$_ACTIVE_SESSION_HISTORY'
) OR
TABLE_NAME LIKE '%~~OLD' OR
TABLE_NAME LIKE '$BPC$HC$%' OR
TABLE_NAME LIKE '$BPC$TMP%' OR
TABLE_NAME LIKE '/BI0/0%' OR
TABLE_NAME LIKE '/BIC/000APR%' OR
TABLE_NAME LIKE '/BI0/A%3' OR
TABLE_NAME LIKE '/BIC/A%3' OR
TABLE_NAME LIKE '/BI0/B%' OR
TABLE_NAME LIKE '/BIC/B%' OR
TABLE_NAME LIKE '/BI0/E1%' OR
TABLE_NAME LIKE '/BIC/E1%' OR
TABLE_NAME LIKE '/BI0/F1%' OR
TABLE_NAME LIKE '/BIC/F1%' OR
TABLE_NAME LIKE '/BI0/H%' OR
TABLE_NAME LIKE '/BIC/H%' OR
TABLE_NAME LIKE '/BI0/I%' OR
TABLE_NAME LIKE '/BIC/I%' OR
TABLE_NAME LIKE '/BI0/J%' OR
TABLE_NAME LIKE '/BIC/J%' OR
TABLE_NAME LIKE '/BI0/K%' OR
TABLE_NAME LIKE '/BIC/K%' OR
TABLE_NAME LIKE '/BI0/Z%' OR
TABLE_NAME LIKE '/BIC/Z%' OR
TABLE_NAME LIKE 'SWNCM_%' OR
TABLE_NAME LIKE 'ZBICZ%' OR
TABLE_NAME LIKE 'ZBI0Z%' OR
TABLE_NAME LIKE 'ZARIX%'
),
COMPRESSION_EXCEPTION_TABLES AS
( SELECT /*+ MATERIALIZE */
OWNER,
TABLE_NAME,
EXCLUDED_VIA,
REASON,
COMPRESSED
FROM
( SELECT
C.OWNER,
C.TABLE_NAME,
DECODE(C.NUM_COLUMNS - 256, -1, '-MCC ' || BI.MIN_COLUMN_THRESHOLD,
'technical restriction') EXCLUDED_VIA,
DECODE(C.NUM_COLUMNS - 256, -1, 'close to 255 columns', '> 255 columns')
REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
COLUMNS C
WHERE
T.OWNER = C.OWNER AND
T.TABLE_NAME = C.TABLE_NAME AND
C.NUM_COLUMNS > BI.MIN_COLUMN_THRESHOLD
UNION
( SELECT
C.OWNER,
C.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'INDX table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
COLUMNS C
WHERE
T.OWNER = C.OWNER AND
T.TABLE_NAME = C.TABLE_NAME AND
C.INDX_COLUMNS = 'X'
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'ABAP table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T
WHERE
T.TABLE_NAME LIKE BI.TABLE_NAME AND
T.TABLE_NAME IN ('REPOSRC', 'REPOLOAD')
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'Upd' || 'ate table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T
WHERE
T.TABLE_NAME IN ('VBHDR', 'VBDATA', 'VBMOD', 'VBERROR')
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'POOL table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
DDNTT DD
WHERE
DD.TABNAME = T.TABLE_NAME AND
DD.TABTYPE = 'P' AND
DD.TABFORM = 'T'
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'CLUSTER table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
DDNTT DD
WHERE
DD.TABNAME = T.TABLE_NAME AND
DD.TABTYPE = 'C' AND
DD.TABFORM = 'T'
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'POOL table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
DDNTT DD
WHERE
DD.TABNAME = T.TABLE_NAME AND
DD.TABTYPE = 'P' AND
DD.TABFORM = 'T'
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'-SCT' EXCLUDED_VIA,
'CLUSTER table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T,
DDNTT DD
WHERE
DD.TABNAME = T.TABLE_NAME AND
DD.TABTYPE = 'C' AND
DD.TABFORM = 'T'
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'_reorg_excl_tab' EXCLUDED_VIA,
'RFC table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T
WHERE
T.TABLE_NAME IN ('ARFCSSTATE', 'ARFCSDATA', 'ARFCRSTATE', 'TRFCQDATA',
'TRFCQIN', 'TRFCQOUT', 'TRFCQSTATE', 'QRFCTRACE', 'QRFCLOG')
)
UNION
( SELECT
T.OWNER,
T.TABLE_NAME,
'_reorg_excl_tab' EXCLUDED_VIA,
'Number range table' REASON,
DECODE(T.COMPRESSION, 'N', ' ', 'X') COMPRESSED
FROM
BASIS_INFO BI,
TABLES T
WHERE
T.TABLE_NAME IN ('NRIV')
)
)
),
LINES AS
( SELECT 1 LINENR, 'TOTAL' DESCRIPTION FROM DUAL UNION ALL
( SELECT 2 LINENR, 'TABLE' DESCRIPTION FROM DUAL ) UNION ALL
( SELECT 3 LINENR, 'INDEX' DESCRIPTION FROM DUAL ) UNION ALL
( SELECT 4 LINENR, 'LOB' DESCRIPTION FROM DUAL )
)
SELECT
D.OWNER,
D.TABLE_NAME,
DECODE(D.BASIS_TABLE, NULL, ' ', 'X') B,
DECODE(D.PART_ENGINE_TABLE, NULL, ' ', 'X') P,
D.LONG_COLUMN L,
DECODE(UNIQUENESS, 'X', 'X', ' ') U,
COMP,
TO_CHAR(ROWNUM, 990) POS,
TO_CHAR(NUM_COLUMNS, 990) COLS,
TO_CHAR(TOTAL_BYTES / 1024 / 1024 / 1024, 99990.99) TOTAL_GB,
TO_CHAR(TOTAL_BYTES / DB_NET_SIZE_BYTE * 100, 990.99) "TOTAL_%",
TO_CHAR(SUM(TOTAL_BYTES / DB_NET_SIZE_BYTE * 100) OVER (ORDER BY TOTAL_BYTES DESC
RANGE UNBOUNDED PRECEDING), 990.99) "CUM_%",
TO_CHAR("PART.", 9990) "PART.",
TO_CHAR(TAB_BYTES / 1024 / 1024 / 1024, 99990.99) TABLE_GB,
TAB_TABSPACE,
TO_CHAR("INDEXES", 990) "IND.",
TO_CHAR(IND_BYTES / 1024 / 1024 / 1024, 9990.99) INDEX_GB,
IND_TABSPACE,
LPAD(DECODE(LOBS, 0, NULL, LOB_TYPE) || TO_CHAR(LOBS), 4) LOBS,
TO_CHAR(LOB_BYTES / 1024 / 1024 / 1024, 9990.99) LOB_GB
FROM
( SELECT
OWNER,
TABLE_NAME,
MAX(BASIS_TABLE) BASIS_TABLE,
MAX(PART_ENGINE_TABLE) PART_ENGINE_TABLE,
MAX(LONG_COLUMN) LONG_COLUMN,
MAX(NUM_COLUMNS) NUM_COLUMNS,
MAX(DECODE(COMPONENT, 'TABLE', DECODE(COMP_EXCEPT_TABLE, NULL, ' ', '!') ||
COMPRESSION)) ||
MAX(DECODE(COMPONENT, 'INDEX', COMPRESSION)) ||
MAX(DECODE(COMPONENT, 'LOB', COMPRESSION)) COMP,
SUM(DECODE(COMPONENT, 'TOTAL', BYTES, 0)) TOTAL_BYTES,
SUM(DECODE(COMPONENT, 'TABLE', COUNTER, 0)) "PART.",
SUM(DECODE(COMPONENT, 'TABLE', BYTES, 0)) TAB_BYTES,
MAX(DECODE(COMPONENT, 'TABLE', TABLESPACE_NAME)) TAB_TABSPACE,
SUM(DECODE(COMPONENT, 'INDEX', COUNTER, 0)) "INDEXES",
SUM(DECODE(COMPONENT, 'INDEX', BYTES, 0)) IND_BYTES,
MAX(DECODE(COMPONENT, 'INDEX', TABLESPACE_NAME)) IND_TABSPACE,
MAX(DECODE(COMPONENT, 'INDEX', ADDITIONAL_INFO, ' ')) UNIQUENESS,
SUM(DECODE(COMPONENT, 'LOB', COUNTER, 0)) LOBS,
SUM(DECODE(COMPONENT, 'LOB', BYTES, 0)) LOB_BYTES,
MAX(DECODE(COMPONENT, 'LOB', ADDITIONAL_INFO, ' ')) LOB_TYPE
FROM
( SELECT
TSM.OWNER OWNER,
TSM.TABLE_NAME TABLE_NAME,
BT.TABLE_NAME BASIS_TABLE,
PET.TABLE_NAME PART_ENGINE_TABLE,
CET.TABLE_NAME COMP_EXCEPT_TABLE,
C.LONG_COLUMN,
C.NUM_COLUMNS,
L.DESCRIPTION COMPONENT,
DECODE(L.DESCRIPTION,
'TOTAL', MAX(DECODE(TSM.SEGMENT_TYPE, 'TABLE', TSM.TABLESPACE_NAME)),
'TABLE', MAX(DECODE(TSM.SEGMENT_TYPE, 'TABLE', TSM.TABLESPACE_NAME)),
'INDEX', MAX(DECODE(TSM.SEGMENT_TYPE, 'INDEX', TSM.TABLESPACE_NAME)),
'LOB', MAX(DECODE(TSM.SEGMENT_TYPE, 'LOB', TSM.TABLESPACE_NAME)))
TABLESPACE_NAME,
DECODE(L.DESCRIPTION,
'TOTAL', SUM(TSM.BYTES),
'TABLE', SUM(DECODE(TSM.SEGMENT_TYPE, 'TABLE', TSM.BYTES)),
'INDEX', SUM(DECODE(TSM.SEGMENT_TYPE, 'INDEX', TSM.BYTES)),
'LOB', SUM(DECODE(TSM.SEGMENT_TYPE, 'LOB', TSM.BYTES))) BYTES,
DECODE(L.DESCRIPTION,
'TOTAL', 0,
'TABLE', SUM(DECODE(TSM.SEGMENT_TYPE, 'TABLE', TSM.PARTITIONS)),
'INDEX', SUM(DECODE(TSM.SEGMENT_TYPE, 'INDEX', TSM.SEGMENTS)),
'LOB', SUM(DECODE(TSM.SEGMENT_TYPE, 'LOB', TSM.SEGMENTS))) COUNTER,
DECODE(L.DESCRIPTION,
'TOTAL', ' ',
'TABLE', NVL(MAX(DECODE(TSM.SEGMENT_TYPE, 'TABLE', TSM.COMPRESSION)), '-'),
'INDEX', NVL(MAX(DECODE(TSM.SEGMENT_TYPE, 'INDEX', TSM.COMPRESSION)), '-'),
'LOB', NVL(MAX(DECODE(TSM.SEGMENT_TYPE, 'LOB', TSM.COMPRESSION)), '-'))
COMPRESSION,
DECODE(L.DESCRIPTION,
'TOTAL', ' ',
'TABLE', MAX(DECODE(TSM.SEGMENT_TYPE, 'TABLE', ' ')),
'INDEX', MAX(DECODE(TSM.SEGMENT_TYPE, 'INDEX', TSM.ADDITIONAL_INFO)),
'LOB', MAX(DECODE(TSM.SEGMENT_TYPE, 'LOB', TSM.ADDITIONAL_INFO)))
ADDITIONAL_INFO
FROM
BASIS_INFO BI,
TABLE_SEGMENT_MAPPING TSM,
LINES L,
BASIS_TABLES BT,
PARTITIONING_ENGINE_TABLES PET,
COMPRESSION_EXCEPTION_TABLES CET,
COLUMNS C
WHERE
TSM.TABLE_NAME LIKE BI.TABLE_NAME AND
TSM.TABLE_NAME = BT.TABLE_NAME (+) AND
TSM.OWNER = PET.OWNER (+) AND
TSM.TABLE_NAME = PET.TABLE_NAME (+) AND
TSM.OWNER = CET.OWNER (+) AND
TSM.TABLE_NAME = CET.TABLE_NAME (+) AND
TSM.OWNER = C.OWNER AND
TSM.TABLE_NAME = C.TABLE_NAME
GROUP BY
L.LINENR,
L.DESCRIPTION,
TSM.OWNER,
TSM.TABLE_NAME,
PET.OWNER,
PET.TABLE_NAME,
CET.OWNER,
CET.TABLE_NAME,
C.OWNER,
C.TABLE_NAME,
C.LONG_COLUMN,
C.NUM_COLUMNS,
BT.TABLE_NAME
ORDER BY
SUM(TSM.BYTES),
TSM.TABLE_NAME,
L.LINENR
)
GROUP BY
OWNER,
TABLE_NAME
ORDER BY
8 DESC
) D,
TOTAL_SEGMENT_SIZE TSS,
BASIS_INFO BI
WHERE
( BI.ONLY_BASIS_TABLES = ' ' OR D.BASIS_TABLE IS NOT NULL ) AND
( BI.ONLY_PART_ENGINE_TABLES = ' ' OR D.PART_ENGINE_TABLE IS NOT NULL ) AND
( BI.NUM_RECORDS = -1 OR ROWNUM <= BI.NUM_RECORDS ) AND
( BI.MIN_TOTAL_SIZE_MB = -1 OR TOTAL_BYTES / 1024 / 1024 >=
BI.MIN_TOTAL_SIZE_MB )
));

You might also like