分區表主鍵

原創作:http://www.itpub.net/thread-1504731-1-1.html

如題,現有一分區表,除主鍵索引外其餘索引均爲分區索引,疑問如下:

1、現在有dba指出修改計劃將表主鍵的全局索引修改爲分區索引,不知道修改後能不能夠起到優化的作用??
2、分區索引對主鍵中的數據一致性有沒有影響??
3、在不影響生產庫的情況下怎樣將全局主鍵索引修改爲分區索引??
  按照我的理解答的,不全對啊。謝謝
答1,分區表在管理上的確非常方便,在性能方面的表現也不錯。
但是就是有一點不是很理想:刪除分區和TRUNCATE分區表中數據,會造成主鍵和全局索引的失效。如果數據表非常大,索引的重建也是需要花很長時間的。
所以:首先根據應用盡量將索引修改爲分區索引(個別索引可能不能修改),刪除主鍵也修改爲唯一分區索引。
經過測試表明,如果分區字段選擇合理,使用分區索引的效率比全局索引要高一些,而主鍵和唯一分區索引的效率大體相當,因此這樣的優化還是非常值得的,如果由於優化導致個別應用效率下降,也可以通過應用的調整進行優化。

答2:主鍵如果不是你選擇的分區字段的話, 在分區表上創建的唯一索引必須包含分區字段,否則會提示錯誤(ORA-14039),這一點也需要特別注意。

答3:刪除索引,創建所以,具體sql,google
注:主鍵索引和主鍵約束的創建與刪除順序
創建主鍵索引 --> 創建主鍵約束
刪除主鍵約束 --> 刪除主鍵索引
  

注:
1.分區字段不是主鍵的情況下,只可以創建全局分區索引,不可以創建本地主鍵分區索引.
只有分區字段爲主鍵時纔可以創建本地主鍵分區索引.
2.如果創建本地唯一分區索引,除指定索引字段外還要加上表分區字段.
這種索引意義不大:因爲這樣構成複合索引,索引改變,約束也改變了.
3.如果創建非唯一索引則不需要表分區字段.
4.創建全局分區索引後可以創建約束. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章