官术网_书友最值得收藏!

4.5 行遷移

行遷移是指某一行的數據量過大,導致該行無法存儲在創建這一行的數據塊中,此時Oracle就會使得該行離開原來的塊,存儲到另一個數據塊中,該行的原始塊和新塊之間使用ROWID記錄這種變遷關系,使得原始行知道后續數據存儲的位置。

我們考慮某一行插入數據的情況,如果此時插入的數據過大,導致該行所在的數據塊即使通過空閑空間合并也無法放下新插入的數據,此時Oracle就考慮使用行遷移,將無法放下的行數據插入新的數據塊。行遷移是應該盡力避免的行為,在數據庫設計時,就要根據業務數據類型、大小設置合理的數據庫塊大小,或者采用其他策略從應用來避免行遷移的發生。

行遷移帶來的問題如下:

其實這個問題可以憑直接想象,讀取某一行時,本來是通過一個數據塊即可讀取到,此時卻需要從多個數據塊讀取,顯然增加了I/O時間,同時對于這種跨行存儲的數據塊的維護也相對復雜,多個行鏈勢必造成維護的開銷。為有大量用戶訪問這種數據行時,由于多余的I/O以及和I/O相關的LATCH(緩存多個數據塊),造成該數據行的訪問效率下降會很明顯。

主站蜘蛛池模板: 淮南市| 玉山县| 林口县| 西华县| 阳东县| 岱山县| 麻阳| 临武县| 读书| 临湘市| 武汉市| 娱乐| 陆川县| 睢宁县| 巢湖市| 皋兰县| 齐河县| 阳春市| 高尔夫| 北安市| 饶平县| 玛纳斯县| 泽普县| 满洲里市| 毕节市| SHOW| 五寨县| 运城市| 靖宇县| 永康市| 苍南县| 绥宁县| 白银市| 油尖旺区| 屯门区| 陆良县| 饶平县| 桐乡市| 繁峙县| 美姑县| 东兴市|