天道酬勤

RDBMS and My Life

How create index on big table

leave a comment

要在一个业务繁忙的OLTP环境下对一个拥有上千万数据的大表创建索引,一个原则就是根据主机CPU的数量尽可能的让SQL进行并行处理(paralell),同时尽量少产生redo。在创建索引之前需要把sort_area_size排序区修改得大一点,如下:

SQL>alter session SET workarea_size_policy=manual;
SQL>alter session SET sort_area_size=1024m;

并行执行SQL:(注意TEMP tablespace的大小,如果太小需要适当的加大)

1
2
SQL>create UNIQUE INDEX index_name ON tablename(column_name)
      online nologging parallel 2 compute statistics;

索引创建完成之后注意要取消并行:

SQL>alter INDEX index_name noparallel;

Written by ochef

March 18th, 2009 at 4:45 pm

Posted in Database

Tagged with ,

Leave a Reply