續_oracle10g_10.2.0.5_構建生產某表為分割槽及分割槽索引的日誌(二)_parallel_nologging

wisdomone1發表於2013-01-06
   前幾日在文章:http://space.itpub.net/9240380/viewspace-751897,為生產某表構建了分割槽型別及本地分割槽索引和唯一索引.
今天上司通知構建的索引與要求不一致.
 
 -----直接在plsql developer檢視索引列,本地分割槽索引的索引列全為組合索引,字首列皆是分期鍵列reqtime
 
 -----侯至晚上,開始刪除上述索引,並重建之.
 ------建立全域性唯一索引,作用主鍵用(注:如下索引名為簡略皆用測試名,t_partition表結構與生產某表相同,id為主鍵,reqtime為分鍵列)
 create unique index pk_x on t_partition(id);
 
 -----建立分割槽索引reqtime
 create index idx_reqtime on t_partition(reqtime) tablespace idx_tbs local;
 
 --建立索引語句報記憶體空間不足
 因為建立索引要採用sequential read方式讀取資料塊,要在記憶體中排序
 
 --採用並行及非日誌方式建立索引,並指定索引表空間
  create index idx_reqtime on t_partition(reqtime) tablespace idx_tbs nologging parallel 6 local;
 
 --同時在另一會話監控v$session_wait,發現大量contention:tm-contention事件,同時發現了px併發事件
 select * from v$session_wait;
 ---啟用並行及非日誌方式建立索引,2分鐘建立索引完畢,上述v$session_wait事件及px併發事件也同時消失
 
 --同理,建立其它的分割槽本地索引
 
 --檢視建立的唯一索引和幾個分割槽本地索引
 select * from user_ind_partitions;
 
 --禁用上述相關索引的並行
 alter index pk_x parallel 1;
 alter index idx_x parallel 1;
 
 --檢視索引是否禁用並行
 select * from user_indexes where table_name='T_PARTITION'
 
 --後記:
 1,並行建立索引時,如何根據系統負荷指定cpu parallel
 2,並行操作的原理是什麼,在下文另行測試
 
 

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

相關文章