【oracle 】如何估算即將建立的索引大小

楊奇龍發表於2010-11-03
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area  426852352 bytes                                      
Fixed Size                  1333648 bytes                                      
Variable Size             260048496 bytes                                      
Database Buffers          159383552 bytes                                      
Redo Buffers                6086656 bytes                                      
資料庫裝載完畢。
資料庫已經開啟。
SQL> drop table t;
表已刪除。
SQL> create table t as select object_id id ,object_name from dba_objects;
表已建立。
SQL> set serveroutput on
SQL> declare
  2  l_index_ddl varchar2(1000);
  3  l_used_bytes number;
  4  l_allocated_bytes number;
  5  begin
  6  dbms_space.create_index_cost (
  7  ddl =>'create index idx_t on t(id) ', --執行的ddl
  8  used_bytes => l_used_bytes,
  9  alloc_bytes => l_allocated_bytes );
 10  dbms_output.put_line ('used= ' || l_used_bytes || 'bytes'
 11  || '  allocated= ' || l_allocated_bytes || 'bytes');
 12  end;
 13  /
used= 345098bytes  allocated= 720896bytes                                      
PL/SQL 過程已成功完成。
說明:  used_bytes  給出索引資料實際表現的位元組數。
         allocated 是當實際建立索引時在表空間中實際佔用的位元組數。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-677328/,如需轉載,請註明出處,否則將追究法律責任。

相關文章