【效能最佳化】消除行連結和行遷移的思路和方法
關於行連結和行遷移的概念請參考文章《【概念】行連結和行遷移的概念、模擬及甄別》
(http://space.itpub.net/519536/viewspace-624408)。
眾所周知,行連結和行遷移會導致系統的查詢效率降低,因為在這種情況下查詢需要掃描更多的資料塊才能得到所需的資訊。本文嘗試給出消除行連結和行遷移的思路和方法。
1.消除行連結和行遷移思路
1)針對發生行連結和行遷移的資料行進行重新整理;
2)將資料遷移到大尺寸資料塊表空間中存放。
2.消除行連結和行遷移方法
假設T表出現行連結、行遷移問題。
1)針對發生行連結和行遷移的資料行進行重新整理的方法
(1)使用CTAS(Create Table As Select)方法將出現行連結和行遷移的資料彙總在表T_Temp中。具體命令參考如下:
SQL> create table T_Temp as select * from T where rowid in (select head_rowid from chained_rows where table_name='T');
(2)刪除T表中發生行連結行遷移的資料
SQL> delete from T where rowid in (select head_rowid from chained_rows where table_name='T');
(3)將表T_Temp中存放的資料插回到T表
SQL> insert into T select * from T_Temp;
(4)刪除表T_Temp
SQL> drop table T_Temp purge;
透過這麼一系列的維護,行連結和行遷移現象將會明顯減少或消失(如果不存在一個資料塊存放不下一行資料的情況)。
2)將資料遷移到大尺寸資料塊表空間中存放
如果存在一個資料塊存放不下一行資料的情況,我們需要透過建立大尺寸資料塊表空間,然後將表移動到新表空間上存放的方法來解決。
(1)建立大尺寸資料塊表空間
有關大尺寸資料塊表空間的建立請參見文章《【TABLESPACE】建立非標準塊大小(標準塊8K)表空間》(http://space.itpub.net/519536/viewspace-668281)
SQL> create tablespace TBS_16K datafile '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' size 256M uniform. size 4M blocksize 16K;
(2)將表T移動到新建的表空間上
SQL> alter table T move TBS_16K;
3.小結
在OLTP系統中出現行連結和行遷移的可能性比較高,我們可以使用文中介紹的方法定期對這些資料進行調整,防止系統出現效能問題。
Good luck.
secooler
11.04.28
-- The End --
(http://space.itpub.net/519536/viewspace-624408)。
眾所周知,行連結和行遷移會導致系統的查詢效率降低,因為在這種情況下查詢需要掃描更多的資料塊才能得到所需的資訊。本文嘗試給出消除行連結和行遷移的思路和方法。
1.消除行連結和行遷移思路
1)針對發生行連結和行遷移的資料行進行重新整理;
2)將資料遷移到大尺寸資料塊表空間中存放。
2.消除行連結和行遷移方法
假設T表出現行連結、行遷移問題。
1)針對發生行連結和行遷移的資料行進行重新整理的方法
(1)使用CTAS(Create Table As Select)方法將出現行連結和行遷移的資料彙總在表T_Temp中。具體命令參考如下:
SQL> create table T_Temp as select * from T where rowid in (select head_rowid from chained_rows where table_name='T');
(2)刪除T表中發生行連結行遷移的資料
SQL> delete from T where rowid in (select head_rowid from chained_rows where table_name='T');
(3)將表T_Temp中存放的資料插回到T表
SQL> insert into T select * from T_Temp;
(4)刪除表T_Temp
SQL> drop table T_Temp purge;
透過這麼一系列的維護,行連結和行遷移現象將會明顯減少或消失(如果不存在一個資料塊存放不下一行資料的情況)。
2)將資料遷移到大尺寸資料塊表空間中存放
如果存在一個資料塊存放不下一行資料的情況,我們需要透過建立大尺寸資料塊表空間,然後將表移動到新表空間上存放的方法來解決。
(1)建立大尺寸資料塊表空間
有關大尺寸資料塊表空間的建立請參見文章《【TABLESPACE】建立非標準塊大小(標準塊8K)表空間》(http://space.itpub.net/519536/viewspace-668281)
SQL> create tablespace TBS_16K datafile '/u01/app/oracle/oradata/ora10g/DATA01_01.dbf' size 256M uniform. size 4M blocksize 16K;
(2)將表T移動到新建的表空間上
SQL> alter table T move TBS_16K;
3.小結
在OLTP系統中出現行連結和行遷移的可能性比較高,我們可以使用文中介紹的方法定期對這些資料進行調整,防止系統出現效能問題。
Good luck.
secooler
11.04.28
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/223653/viewspace-2133583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【轉】【效能最佳化】消除行連結和行遷移的思路和方法
- 【效能優化】消除行連結和行遷移的思路和方法優化
- 如何消除行連結和行遷移
- 關於行連結和行遷移和消除
- 行遷移和行連結
- 清除行遷移和行連結
- Oracle 行遷移 & 行連結的檢測與消除Oracle
- 行遷移和行連結的檢測
- 排除表中的行連結和行遷移
- 模擬Oracle行遷移和行連結Oracle
- 【效能最佳化】消除行遷移 table fetch continued row
- Row Migration and Row Chaining(行遷移和行連結)AI
- 查詢行遷移及消除行遷移(chained rows)AI
- 【概念】行連結和行遷移的概念、模擬及甄別
- 行遷移_行連結的介紹
- Oracle中行遷移和行連結的清除及檢測Oracle
- 【轉載】行遷移和行連結(row chaining or row migration)AI
- 行連結(Row chaining)和行遷移(Row Migration)的讀書筆記AI筆記
- 【效能優化】消除行遷移 table fetch continued row優化
- 行連結與行遷移, LOB欄位的儲存及效能影響
- pctused, pctfree, pctincrease , 行遷移 & 行連結
- 【備份恢復】行遷移與行連結
- 記一次遷移和效能最佳化
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- Oracle資料庫關於錶行連線和行遷移處理方案Oracle資料庫
- [20160726]行連結行遷移與ITL槽.txt
- 設計思路-服務和庫平滑遷移
- 關於Oracle資料庫中行遷移/行連結的問題Oracle資料庫
- [20160729]行連結行遷移與ITL槽4.txt
- [20160727]行連結行遷移與ITL槽2.txt
- [20160728]]行連結行遷移與ITL槽3.txt
- 1.5 使用nvicat和kettle進行全量遷移
- 使用Mobilenet和Keras進行遷移學習!Keras遷移學習
- [20180402]行連結行遷移與ITL槽6.txt
- 簡單瞭解 oracle update 原理(測試)、 行遷移/行連結基本認識Oracle
- 高水位線、行遷移行連結
- 使用cProfile針對回測進行效能分析,和結合說下提速思路
- [20121116]通過bbed觀察行連結與行遷移.txt