關於分區表修改問題

修改分區數據問題:

1、如果修改分區列時:

修改後導致修改的行所在分區發生改變

修改後分區沒有發生改變

2、修改非分區列

修改後不會導致修改行所在分區改變

第一種:導致修改後行所在分區發生變化,需要將所在表設置爲 行可以移動

alter table partition_table enable row movement;


修改操作可能會導致rowid改變,所以要啓動行移動(因爲不同的分區屬於不同的段,rowid的中包含了段信息,索引會導致rowid改變)

執行行遷移:先刪除該記錄,在插入該記錄,相當於完成兩個操作。雖然這樣,oracle把它看成一個更新,不會觸發insert和delete觸發器,只會觸發update觸發器。

注意:在外鍵約束中可能不允許,所以delete子表時不會觸發delete觸發器。因爲行移動開銷非常大。如果一個系統中頻繁修改分區鍵,這種操作會導致大量行移動,讓系統非常糟糕設計



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