环境:HPUX+Oracle10gR2
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for HPUX: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
4个节点
SQL> select distinct inst_id from gv$session;
INST_ID
----------
1
2
3
4
索引大概8亿条数据
SQL> select num_rows from dba_indexes where index_name='PROD_SKDI_SRCE_REGN_ID';
NUM_ROWS
----------
812659606
重建索引花的时间大概25分钟
SQL> alter index PROD_SKDI_SRCE_REGN_ID rebuild online nologging parallel;
Index altered.
Elapsed: 00:25:38.98
新建该索引大概也花了25分钟左右。
其实重建索引之前(新建索引),我们还可以:
alter session set DB_FILE_MULTIBLOCK_READ_COUNT=128;
这样设置之后更能加快索引重建速度,因为索引的 create,rebuild都会做全表扫描
2010年7月12日更新
HPUX +Oracle10gR2 10.2.0.3, 8 cpu
RAC 4节点, 每个节点SGA 14G, PGA 20G
在11亿条数据的表上面创建索引所花的时间
SQL> create index adwu.prod_skid_srce_regn on adwu.globl_demnd_frcst_wk_fct(prod_skid,srce_regn_id) nologging parallel 16
2 tablespace DEM_PLAN01S;
Index created.
Elapsed: 00:28:53.56
写作此文是为了以后参考。
转载:http://blog.youkuaiyun.com/robinson1988/article/details/5532018