Hash分割槽是透過對分割槽鍵運用Hash演算法從而決定資料的分割槽歸屬。
常用的分割槽表所具有的優點:如提高資料可用行,減少管理負擔,改善語句效能等優點,hash分割槽同樣擁有。此外,由於Hash分割槽表是按分割槽鍵的hash計算結果來決定其分割槽的,而特定的分割槽鍵其hash值是固定的,也就是說Hash分割槽表的資料是按分割槽鍵值來聚集的,同樣的分割槽鍵肯定在同一分割槽。
Hash分割槽表是透過add partition命令來增加分割槽的。Oracle推薦分割槽的個數是2的冪,比如,2,8..等等,這樣可以確保資料在各個分割槽中分佈比較均勻。當然,如前所述,還需要分割槽鍵值是連續分佈的,或接近連續分佈。
比如,現在有個Hash分割槽表共有100個分割槽,我們想為其增加一個分割槽,則它是101個分割槽,即上面公式中的N為101,而大於101的最小2的整數冪為128,則M為128,於是,這個101分割槽的資料來源就應該是101-128/2=37分割槽。
換個角度來說,當我們在增加第101分割槽的時候,是需要鎖定37分割槽的,因為我們需要將該分割槽中的部分資料插入到新的101分割槽中。
Hash分割槽是透過對分割槽鍵運用Hash演算法從而決定資料的分割槽歸屬。
常用的分割槽表所具有的優點:如提高資料可用行,減少管理負擔,改善語句效能等優點,hash分割槽同樣擁有。此外,由於Hash分割槽表是按分割槽鍵的hash計算結果來決定其分割槽的,而特定的分割槽鍵其hash值是固定的,也就是說Hash分割槽表的資料是按分割槽鍵值來聚集的,同樣的分割槽鍵肯定在同一分割槽。
Hash分割槽表是透過add partition命令來增加分割槽的。Oracle推薦分割槽的個數是2的冪,比如,2,8..等等,這樣可以確保資料在各個分割槽中分佈比較均勻。當然,如前所述,還需要分割槽鍵值是連續分佈的,或接近連續分佈。
比如,現在有個Hash分割槽表共有100個分割槽,我們想為其增加一個分割槽,則它是101個分割槽,即上面公式中的N為101,而大於101的最小2的整數冪為128,則M為128,於是,這個101分割槽的資料來源就應該是101-128/2=37分割槽。
換個角度來說,當我們在增加第101分割槽的時候,是需要鎖定37分割槽的,因為我們需要將該分割槽中的部分資料插入到新的101分割槽中。