日期:2014-05-16  浏览次数:20496 次

创建索引ORACLE 需要做的工作

一.?先来看一下创建索引要做哪些操作:
1.?index?keydata?读到内存
==>如果data?没在db_cache?中,这时候很容易有大量的db?file?scatter?read?wait

2.?index?keydata?作排序
==>sort_area_size?或者pga_aggregate_target?不够大的情况下,需要做?disk?sort,?会有大量的driect?path?read/write?,?另外,消耗大量CPU?Time

3.?创建新的index?segment?,?把排过序的index?data?写到所创建的index?segment?里面
==>如果index?很大,那么,有时也会有redo?log?相关等待,如:
log?buffer?space?,log?file?sync?,?log?file?parallel?write?

所以,在建大表索引时,可以增大pga,增大temp?tablepace,并且用nologging或并行选项。

如:
create?index?idx_logs?on?logs(time)?nologging?parallel?4;

?