国产探花免费观看_亚洲丰满少妇自慰呻吟_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就尋找能容納下該行的數據塊,假如能找到這樣的塊,便把該行全部存入新塊中,而在原來的數據塊上寫入指向新塊的地址。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牙克石市| 三台县| 乌兰浩特市| 股票| 岑溪市| 红原县| 隆子县| 周至县| 金沙县| 木兰县| 南安市| 和林格尔县| 出国| 沾化县| 廊坊市| 天长市| 江陵县| 浠水县| 奉节县| 府谷县| 五家渠市| 鄂尔多斯市| 谢通门县| 武山县| 西林县| 赫章县| 如皋市| 滦平县| 弥渡县| 许昌县| 阿坝县| 凉城县| 犍为县| 霸州市| 玉环县| 封丘县| 德阳市| 博爱县| 通河县| 民和| 台前县|