- Oracle DBA基礎教程
- 林樹澤
- 427字
- 2021-03-26 13:21:42
4.5 行遷移
行遷移是指某一行的數據量過大,導致該行無法存儲在創建這一行的數據塊中,此時Oracle就會使得該行離開原來的塊,存儲到另一個數據塊中,該行的原始塊和新塊之間使用ROWID記錄這種變遷關系,使得原始行知道后續數據存儲的位置。
我們考慮某一行插入數據的情況,如果此時插入的數據過大,導致該行所在的數據塊即使通過空閑空間合并也無法放下新插入的數據,此時Oracle就考慮使用行遷移,將無法放下的行數據插入新的數據塊。行遷移是應該盡力避免的行為,在數據庫設計時,就要根據業務數據類型、大小設置合理的數據庫塊大小,或者采用其他策略從應用來避免行遷移的發生。
行遷移帶來的問題如下:
其實這個問題可以憑直接想象,讀取某一行時,本來是通過一個數據塊即可讀取到,此時卻需要從多個數據塊讀取,顯然增加了I/O時間,同時對于這種跨行存儲的數據塊的維護也相對復雜,多個行鏈勢必造成維護的開銷。為有大量用戶訪問這種數據行時,由于多余的I/O以及和I/O相關的LATCH(緩存多個數據塊),造成該數據行的訪問效率下降會很明顯。
推薦閱讀
- The DevOps 2.3 Toolkit
- Microsoft Application Virtualization Cookbook
- arc42 by Example
- Redis Essentials
- Microsoft System Center Orchestrator 2012 R2 Essentials
- C語言實驗指導及習題解析
- Python Data Analysis Cookbook
- 青少年學Python(第1冊)
- 第一行代碼 C語言(視頻講解版)
- 基于ARM Cortex-M4F內核的MSP432 MCU開發實踐
- Hands-On Neural Network Programming with C#
- FFmpeg開發實戰:從零基礎到短視頻上線
- HTML5+CSS3+JavaScript 從入門到項目實踐(超值版)
- App Inventor 2 Essentials
- STM8實戰