国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

DAILY TIP-1:行遷移以及消除

2024-07-21 02:36:02
字體:
來源:轉載
供稿:網友

  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
  
  
  這里我們也看到了隨便向表里面添加字段的不良后果,數據庫設計時候的不注重
  
  尤其是添加字段的時候,還有一個Default值。
  
  產生行遷移的原因在于,假如PCTFREE的值太小,當用UPDATE語句更新一行數據時,可能使該行的數據增加,從而使其在一個數據塊內存放不下。這時ORACLE就尋找能容納下該行的數據塊,假如能找到這樣的塊,便把該行全部存入新塊中,而在原來的數據塊上寫入指向新塊的地址。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀化市| 定西市| 祁连县| 中江县| 云林县| 黄山市| 汉寿县| 神农架林区| 三原县| 小金县| 浦江县| 苏尼特右旗| 昌都县| 柏乡县| 苗栗市| 新宁县| 岳阳市| 定边县| 社旗县| 伊川县| 乌什县| 宿松县| 新兴县| 陇西县| 青河县| 河北区| 肇东市| 东乌珠穆沁旗| 凤台县| 大名县| 潼关县| 沙坪坝区| 大竹县| 文山县| 蓬安县| 永春县| 宜川县| 宜川县| 罗江县| 罗江县| 绥江县|