看到piner的面試題:如何在7*24業務上增加大表約束

paulyibinyi發表於2008-03-25

題目如下:

在一個24*7的應用上,需要把一個訪問量很大的1000萬以上資料級別的表的普通索引(a,b)修改成唯一約束(a,b,c),你一般會選擇怎麼做,請說出具體的操作步驟與語句。

第一種方法:

 1.  create unique  index  idx_test  on test (a,b,c)  online; 聯機線上建立方法 不會阻塞dml

 2.  再刪除普通索引

第二種方法:

1、建立普通索引

程式碼:



create index index_name on table_name (field_name) online;

 



2
、採用不校驗以前資料的方式建立約束

程式碼:



alter table table_name
  add constraint constraint_name primary key
(field_name)
  
using index index_name novalidate;



3
、合併檢查以前的資料

程式碼:



alter table table_name modify constraint constraint_name validate;  

 



---

這裡主要是針對以前的記錄

 

4.刪除普通索引

 

 

 

 

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

相關文章