-- +----------------------------------------------------------------------------+ -- | Jeffrey M. Hunter | -- | jhunter@idevelopment.info | -- | www.idevelopment.info | -- |----------------------------------------------------------------------------| -- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. | -- |----------------------------------------------------------------------------| -- | DATABASE : Oracle | -- | FILE : dba_index_stats.sql | -- | CLASS : Database Administration | -- | PURPOSE : Report index statistics. | -- | NOTE : As with any code, ensure to test this script in a development | -- | environment before attempting to run it in production. | -- +----------------------------------------------------------------------------+ SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET LINESIZE 180 SET PAGESIZE 50000 SET TERMOUT ON SET TIMING OFF SET TRIMOUT ON SET TRIMSPOOL ON SET VERIFY OFF CLEAR COLUMNS CLEAR BREAKS CLEAR COMPUTES PROMPT PROMPT +------------------------------------------------------------------------+ PROMPT | Calculate Index Statistics for a Specified Index | PROMPT +------------------------------------------------------------------------+ PROMPT ACCEPT index_name CHAR prompt 'Enter index name [SCHEMA].index_name : ' COLUMN name newline COLUMN headsep newline COLUMN height newline COLUMN blocks newline COLUMN lf_rows newline COLUMN lf_blks newline COLUMN lf_rows_len newline COLUMN lf_blk_len newline COLUMN br_rows newline COLUMN br_blks newline COLUMN br_rows_len newline COLUMN br_blk_len newline COLUMN del_lf_rows newline COLUMN del_lf_rows_len newline COLUMN distinct_keys newline COLUMN most_repeated_key newline COLUMN btree_space newline COLUMN used_space newline COLUMN pct_used newline COLUMN rows_per_key newline COLUMN blks_gets_per_access newline ANALYZE INDEX &index_name VALIDATE STRUCTURE; SELECT name , '----------------------------------------------------------------------------' headsep , 'height ' ||to_char(height, '999,999,990') height , 'blocks ' ||to_char(blocks, '999,999,990') blocks , 'del_lf_rows ' ||to_char(del_lf_rows,'999,999,990') del_lf_rows , 'del_lf_rows_len ' ||to_char(del_lf_rows_len,'999,999,990') del_lf_rows_len , 'distinct_keys ' ||to_char(distinct_keys,'999,999,990') distinct_keys , 'most_repeated_key ' ||to_char(most_repeated_key,'999,999,990') most_repeated_key , 'btree_space ' ||to_char(btree_space,'999,999,990') btree_space , 'used_space ' ||to_char(used_space,'999,999,990') used_space , 'pct_used ' ||to_char(pct_used,'990') pct_used , 'rows_per_key ' ||to_char(rows_per_key,'999,999,990') rows_per_key , 'blks_gets_per_access ' ||to_char(blks_gets_per_access,'999,999,990') blks_gets_per_access , 'lf_rows ' ||to_char(lf_rows, '999,999,990') || ' ' || + 'br_rows ' ||to_char(br_rows, '999,999,990') br_rows , 'lf_blks ' ||to_char(lf_blks, '999,999,990') || ' ' || + 'br_blks ' ||to_char(br_blks, '999,999,990') br_blks , 'lf_rows_len ' ||to_char(lf_rows_len,'999,999,990') || ' ' || + 'br_rows_len ' ||to_char(br_rows_len,'999,999,990') br_rows_len , 'lf_blk_len ' ||to_char(lf_blk_len, '999,999,990') || ' ' || + 'br_blk_len ' ||to_char(br_blk_len, '999,999,990') br_blk_len FROM index_stats / UNDEFINE index_name SET FEEDBACK 6 SET HEADING ON