清除行遷移和行連結

husthxd發表於2004-09-21

  清除表中的遷移行和連結行
  譯自oracle文件


 

 

 


   下面過程使用表CHAINED_ROWS 的資訊清除表中的遷移行和連結行:

  1.使用ANALYZE 收集遷移行和連結行的資訊

ANALYZE TABLE hyb_yzbz LIST CHAINED ROWS;

 

  1. 查詢輸出表

      SELECT *

      FROM CHAINED_ROWS

WHERE TABLE_NAME = 'HYB_YZBZ';

 

OWNER_NAME  TABLE_NAME  CLUST... HEAD_ROWID          TIMESTAMP

----------  ----------  -----... ------------------  ---------

SCOTT       HYB_YZBZ       ... AAAAluAAHAAAAA1AAA  04-MAR-96

SCOTT       HYB_YZBZ       ... AAAAluAAHAAAAA1AAB  04-MAR-96

SCOTT       HYB_YZBZ       ... AAAAluAAHAAAAA1AAC  04-MAR-96

      輸出列表是表中的遷移行或者連結行

  1. 如果有許多遷移、連結行,使用以下步驟清除

  1. 建立臨時表用於暫時儲存遷移和連結行

CREATE TABLE temp_hyb_yzbz

   AS SELECT *

      FROM hyb_yzbz

      WHERE ROWID IN

         (SELECT HEAD_ROWID

            FROM CHAINED_ROWS

            WHERE TABLE_NAME = 'HYB_YZBZ');

 

          5.刪除表中的遷移和連結行

DELETE FROM hyb_yzbz

   WHERE ROWID IN

      (SELECT HEAD_ROWID

         FROM CHAINED_ROWS

         WHERE TABLE_NAME = 'HYB_YZBZ');

 

  1. 把臨時表中行重新插入到正式表中

INSERT INTO hyb_yzbz

   SELECT *

   FROM temp_hyb_yzbz;

 

  1. 刪除臨時表

DROP TABLE temp_hyb_yzbzory;

 

    8.刪除CHAINED_ROWS中的相應資訊

DELETE FROM CHAINED_ROWS

   WHERE TABLE_NAME = 'HYB_YZBZ';

 

    9. 重新分析表,並檢視輸出

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21542/,如需轉載,請註明出處,否則將追究法律責任。

相關文章