行鏈接和行遷移的概念:

行遷移概念:
當一個行上的更新操作(原來的數據存在且沒有減少)導致當前的數據不能在容納在當前塊,我們需要進行行遷移。
一個行遷移意味着整行數據將會移動,僅僅保留的是一個轉移地址。因此整行數據都被移動,
原始的數據塊上僅僅保留的是指向新塊的一個地址信息。


成因:當行被update時,如果update更新的行大於數據塊的pctfree值,就需要申請第2個塊,從而形成遷移。

後果:導致應用需要訪問更多的數據塊,性能下降。

預防:1.將數據塊的pctfree調大;

      2.針對表空間擴大數據塊的大小。

檢查:analyze table 表名 validate structure cascade into chained_rows;







行鏈接概念:
當一行數據太大而不能在一個單數據塊容納時,行鏈接由此產生。舉例來說,當你使用了4kb的Oracle數據塊大小,
而你需要插入一行數據是8k,Oracle則需要使用3個數據塊分成片來存儲。因此,引起行鏈接的情形通常是,
表上行記錄的大小超出了數據庫Oracle塊的大小。

產生原因:當一行數據大於一個數據塊,ORACLE會同時分配兩個數據塊,並在第一個塊上登記第二個塊的地址,從而形成行鏈接。

預防方法:針對表空間擴大數據塊大小。

檢查:analyze table 表名 validate structure cascade into chained_rows;

實驗部分:
https://www.cnblogs.com/Richardzhu/p/3449243.html

 

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