자작임을 감안하자.
accept TABLE_NAME prompt '[http://sarc.io] Enter Table Name : ' SET serveroutput ON SET pagesize 100 SET linesize 130 col table_owner FOR a15 col TABLE_NAME FOR a30 col index_name FOR a30 col column_name FOR a25 col column_position FOR 99 col descend FOR a8 SELECT table_owner , TABLE_NAME , index_name , column_name , column_position , descend FROM dba_ind_columns WHERE TABLE_NAME = UPPER('&table_name') ORDER BY table_owner, TABLE_NAME, index_name, column_position; col owner FOR a15 col segment_name FOR a30 col bytes FOR 999,999,999,999.99 SELECT owner , segment_name , SUM(bytes/1024/1024) bytes FROM dba_segments WHERE segment_name = UPPER('&table_name') GROUP BY owner, segment_name; SELECT owner , segment_name , SUM(bytes/1024/1024) bytes FROM dba_segments WHERE segment_name IN (SELECT index_name FROM dba_indexes WHERE TABLE_NAME = UPPER('&table_name') ) GROUP BY owner, segment_name;
결과 한 번 보고 가신다.
SQL> @INDEX [http://sarc.io] Enter TABLE Name : TABLE_ARTICLE OLD 8: WHERE TABLE_NAME = UPPER('&table_name') NEW 8: WHERE TABLE_NAME = UPPER('TABLE_ARTICLE') TABLE_OWNER TABLE_NAME INDEX_NAME COLUMN_NAME COLUMN_POSITION DESCEND --------------- ------------------------------ ------------------------------ ------------------------- --------------- -------- SARC_IO TABLE_ARTICLE INDEX_ARTICLE ID 1 ASC SARC_IO TABLE_ARTICLE INDEX_ARTICLE TIME 2 ASC OLD 5: WHERE segment_name = UPPER('&table_name') NEW 5: WHERE segment_name = UPPER('TABLE_ARTICLE') OWNER SEGMENT_NAME BYTES --------------- ------------------------------ ------------------- SARC_IO TABLE_ARTICLE 1,937.19 OLD 7: WHERE TABLE_NAME = UPPER('&table_name') NEW 7: WHERE TABLE_NAME = UPPER('TABLE_ARTICLE') OWNER SEGMENT_NAME BYTES --------------- ------------------------------ ------------------- SARC_IO INDEX_ARTICLE 755.75