accept table_name prompt 'Enter table_name: 'set pagesize 999set linesize 132set verify offcolumn table_name format a40column index_name format a40column column_name format a40column value format a65column object_name format a60select owner, object_name, object_typefrom dba_objectswhere upper(object_name) = upper('&table_name')order by owner, object_name, object_type/accept owner prompt 'Enter table owner: 'REMPrompt Table DefinitionREMdescribe &owner..&table_namePrompt Index Definitionselect distinct c.index_name, i.uniqueness, c.column_name, c.column_positionfrom dba_ind_columns c, dba_indexes iwhere upper(c.table_name) = upper('&table_name')and upper(c.table_owner) = upper('&owner')and c.index_name = i.index_nameand c.index_owner = i.ownerorder by index_name, column_position/REMPrompt Column DefinitionsREMselect column_name, num_distinct, num_nulls, num_buckets, density, sample_sizefrom dba_tab_columnsWHERE upper(owner) = upper('&owner')AND upper(table_name) = upper('&table_name')order by column_name/REMPrompt Existing HistogramsREMSELECT column_name, endpoint_number, endpoint_valueFROM dba_histogramsWHERE upper(table_name) = upper('&table_name')AND upper(owner) = upper('&owner')ORDER BY column_name, endpoint_number/REMprompt Row CountsREMSELECT table_name, num_rows, degree, last_analyzedFROM dba_tablesWHERE upper(owner) = upper('&owner')AND upper(table_name) = upper('&table_name')/REMprompt Table and Indexes - Segment SizesREMcolumn segment_name format a50SELECT segment_name, segment_type, SUM(bytes)/1024/1024 size_mbFROM dba_segmentsWHERE upper(owner) = upper('&owner')AND upper(segment_name) = upper('&table_name')OR segment_name in ( select index_name from dba_indexes where upper(table_name) = upper('&table_name') and upper(table_owner) = upper('&owner'))GROUP BY segment_name, segment_type/REM uncomment this line if you want "live" row countsREM - for large tables this could run for a while and cause performance problemsREMREM select count(*) from "&owner"."&table_name"REM /