oracle constraints(3)

oracle constraints 應用

oracle constraints可以設置爲立即檢查或者當時事務提交時檢查。

    可以在創建約束的時候指定是deferrable。然後通過set constraints xxx set deferred或者immediate,也可以在seesion級別設定所有約束爲deferred或者immediate(alter seesion set constraints deferred/immediate)。

   

  

  在這種情況下創建的索引會有所變化。

 

  這種情況先創建的索引是爲唯一性索引,所以這種情況下可以在數據表中有違反約束的情況下切換到 enabled novalidated狀態。

 

 

總結:

    當有大量數據的插入時候可以先將約束和索引失效,在數據插入完成後將約束和索引生效。

    生效過程中先將約束狀態由disabled 到enabled novalidated狀態然後在到enabled validated狀態,這樣過程中第一步不會對錶進行操作所以不會鎖表而且速度很快,第二步會對錶進行加鎖但是oracle在這種情況下還是允許用戶進行中小型的數據更新。相比直接到enabled validated狀態要速度更快,併發性更好。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章