查詢行遷移及消除行遷移(chained rows)
select table_name,num_rows,CHAIN_CNT from user_tables ;
or
select table_name,num_rows,CHAIN_CNT from dba_tables where owner='XXXXXXX' ;[@more@]
Row Migration,是Oracle裡面的一個重要的基本概念。
一般傳統意義上,我們需要消除行遷移。 因為這樣,會造成額外的IO消耗。傳統的辦法一般是匯入倒出整個表。
但是這樣的風險比較大,而且Downtime會比較長。
當有外來鍵約束之類的時候,也非常的麻煩。
也有人選擇用刪除migration的行,然後重新Insert ,但是和EXP/Imp一樣,當遭碰到FK/PK限制的時候,也會很頭疼。
我們可以用下面的辦法來最方便的進行重組,消除row migration:
SQL> alter table t add t1 date default sysdate;
Table altered.
SQL> c/t1/t2
1* alter table t add t2 date default sysdate
SQL> /
Table altered.
SQL> c/t2/t3
1* alter table t add t3 date default sysdate
SQL> /
Table altered.
SQL> analyze table t compute statistics;
Table analyzed.
SQL> select table_name,num_rows,CHAIN_CNT from user_tables where table_name='T';
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
T 41616 3908
SQL> alter table t move ;
Table altered.
SQL> analyze table t compute statistics;
Table analyzed.
SQL> select table_name,num_rows,CHAIN_CNT from user_tables where table_name='T';
TABLE_NAME NUM_ROWS CHAIN_CNT
------------------------------ ---------- ----------
T 41616 0
Index 需要rebuild 或者刪除重建 。
--------------------------------------------------------------------------------------------------------
如何消除表中的chained rows?(測試表中存在較多的連結行)
建立chained rows需要的表:
sql> @/home/oracle/product/9.2.0/rdbms/admin/utlchain.sql
將表中的chained row移動到chained_rows表
sql> analyze table test_table_name list chained rows;
sql> select table_name,head_rowid from chained_rows
where table_name = ‘TEST_TABLE_NAME’;
sql> select * from agent_account where rowid in
(select head_rowid from chained_rows where table_name = ‘TEST_TABLE_NAME’)
---------------------------------------------------------------------------------------------------
或者exp/imp也能解決 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-1001816/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle11g_如何模擬產生行連結或行遷移chained_rowsOracleAI
- 如何消除行連結和行遷移
- 查詢表存在大量行遷移
- 關於行連結和行遷移和消除
- Oracle 行遷移 & 行連結的檢測與消除Oracle
- 行遷移測試
- 【效能優化】消除行連結和行遷移的思路和方法優化
- 行遷移和行連結
- 【效能優化】消除行遷移 table fetch continued row優化
- 【效能最佳化】消除行連結和行遷移的思路和方法
- Oracle行遷移實驗Oracle
- 清除行遷移的例子
- 清除行遷移和行連結
- 行遷移(鏈化行)問題
- 【效能最佳化】消除行遷移 table fetch continued row
- 【轉】【效能最佳化】消除行連結和行遷移的思路和方法
- 遷移執行緒migration執行緒
- 行遷移_行連結的介紹
- 行遷移檢測及解決一例
- 模擬Oracle行遷移和行連結Oracle
- pctused, pctfree, pctincrease , 行遷移 & 行連結
- 行遷移和行連結的檢測
- 使用RMAN進行資料遷移
- 今天晚上進行資料遷移
- 【效能】Oracle表並行對邏輯遷移後查詢效能的影響Oracle並行
- KVM線上遷移(動態遷移)
- 【概念】行連結和行遷移的概念、模擬及甄別
- 【備份恢復】行遷移與行連結
- 排除表中的行連結和行遷移
- 【遷移】使用rman遷移資料庫資料庫
- Oracle中行遷移和行連結的清除及檢測Oracle
- 行遷移測試實驗(轉載)
- 【exp】使用exp工具的rows選項完成結構遷移
- 遷移公告
- CCU遷移
- 棧遷移
- chained rows analyzeAI
- EF Core 小技巧:遷移已經應用到資料庫,如何進行遷移回退操作?資料庫