online 建立index的時候,oracle會等待insert , update的行(假設不超過table的30% ) c

tolywang發表於2008-12-26
Linux AS2.1 , 3.0 系統  
版本有 :
Oracle 8.1.6.0 ,  Oracle8.1.7.0  , Oracle92.0.1 ,
Oracle 9.2.0.4            
主題:    ONLINE 建立 INDEX 時Oracle做了什麼 ?
   

         以前建立大的索引大多數時候是在沒有 transaction 狀態下加入的,當然也沒有使用online 選項 。偶爾小一些的表,在20秒內能加入的我們都沒有使用online  選項 。

        online 建立index的時候,是以什麼機制來建立的? oracle會等待insert , update的行( 假設這些行不超過table 行的30% ) commit或rollback之後才建立嗎? 如果是,那麼如果一直都有這個表上的少量資料update 及insert , 那麼建立這樣的索引會很慢 。 如果不是, 那麼當需要建立index的列的某些行由原來的值“ASIA_CHINA” 更新為“USA” 的時候,它在INDEX葉子結點上又是如何更新的 ;  還是說它的INDEX 根本還沒有被建立, 而是儲存在其他臨時的地方  ?   

        我們在做測試的時候, 同樣的表及資料量,其他環境也一樣, online加入index會比非online 加入慢很多 。



線上建立INDEX的文章 。
   



************************************************************************************

Creating an Index Online
Previously, when creating an index on a table there has always been a DML S-lock on that table during the index build operation, which meant you could not perform. DML operations on the base table during the build.

Now, with the ever-increasing size of tables and necessity for continuous operations, you can create and rebuild indexes online--meaning you can update base tables at the same time you are building or rebuilding indexes on that table. Note, though, that there are still DML SS-locks, which means you cannot perform. other DDL operations during an online index build.

The following statements perform. online index build operations:

ALTER INDEX emp_name REBUILD ONLINE;

CREATE INDEX emp_name ON emp (mgr, emp1, emp2, emp3) ONLINE;


--------------------------------------------------------------------------------
Note:
While you can perform. DML operations during an online index build, Oracle recommends that you do not perform. major/large DML operations during this procedure. For example, if you wish to load rows that total up to 30% of the size of an existing table, you should perform. this load before the online index build.  

--------------------------------------------------------------------------------

**************************************************************************************

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

相關文章