欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Oracle普通表轉(zhuǎn)分區(qū)表的幾種方法

將普通表轉(zhuǎn)換成分區(qū)表有4種方法: 

九江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

  1)  Export/import method 

  2)  Insert with a subquery method 

  3)  Partition exchange method(交換分區(qū))

  4)  DBMS_REDEFINITION(在線重定義)

交換分區(qū)的步驟:

1)  創(chuàng)建分區(qū)表,假設(shè)有2個分區(qū),P1,P2

2)  創(chuàng)建表A存放P1規(guī)則的數(shù)據(jù)

3)  創(chuàng)建表B 存放P2規(guī)則的數(shù)據(jù)

4)  用表A 和P1 分區(qū)交換,把表A的數(shù)據(jù)放到到P1分區(qū)

5)  用表B 和p2 分區(qū)交換,把表B的數(shù)據(jù)存放到P2分區(qū)

示例:

a. 創(chuàng)建分區(qū)表:

sql> create table p_dba 

  2    (id number,time date) 

  3    partition by range(time) 

  4    ( 

  5    partition p1 values less than (to_date('2010-09-1', 'yyyy-mm-dd')), 

  6    partition p2 values less than (to_date('2010-11-1', 'yyyy-mm-dd')) 

  7    ); 

b.創(chuàng)建2個分別對應(yīng)分區(qū)的基表:

SQL>  CREATE  TABLE  dba_p1  as  SELECT  id,time_fee  FROM  dba_old WHERE   

time_fee<TO_DATE('2010-09-1', 'YYYY-MM-DD');

SQL>  CREATE  TABLE  dba_p2  as  SELECT  id,time_fee  FROM  dba_old WHERE   

time_fee<TO_DATE('2010-11-1',  'YYYY-MM-DD')  and 

time_fee>TO_DATE('2010-09-1', 'YYYY-MM-DD');

c.將2個基表與2個分區(qū)進(jìn)行交換: 

SQL> alter table p_dba exchange partition p1 with table dba_p1; 

表已更改。 

SQL> alter table p_dba exchange partition p2 with table dba_p2; 

表已更改。 

在線重定義能保證數(shù)據(jù)的一致性,在大部分時間內(nèi),表都可以正常進(jìn)行DML操作。

只在切換的瞬間鎖表,具有很高的可用性。這種方法具有很強(qiáng)的靈活性,對各種不同的需要都能滿足。

而且,可以在切換前進(jìn)行相應(yīng)的授權(quán)并建立各種約束,可以做到切換完成后不再需要任何額外的管理操作。


這個功能只在9.2.0.4以后的版本才有,在線重定義表具有以下功能:

(1)修改表的存儲參數(shù) 

(2)將表轉(zhuǎn)移到其他表空間

(3)增加并行查詢選項(xiàng)

(4)增加或刪除分區(qū)

(5)重建表以減少碎片 

(6)將堆表改為索引組織表或相反的操作

(7)增加或刪除一個列

使用在線重定義的一些限制條件: 

(1) There must be enough space to hold two copies of the table.  

(2) Primary key columns cannot be modified.  

(3) Tables must have primary keys.  

(4) Redefinition must be done within the same schema.  

(5) New  columns  added  cannot  be  made  NOT  NULL  until  after  the  redefinition operation.  

(6) Tables cannot contain LONGs, BFILEs or User Defined Types.  

(7) Clustered tables cannot be redefined.  

(8) Tables in the SYS or SYSTEM schema cannot be redefined.  

(9) Tables  with  materialized  view  logs  or  materialized  views  defined  on  them cannot be redefined.  

(10) Horizontal sub setting of data cannot be performed during the redefinition.  

在線重定義的大致操作流程如下: 

(1)創(chuàng)建基礎(chǔ)表A,如果存在,就不需要操作

(2)創(chuàng)建臨時的分區(qū)表B

(3)開始重定義,將基表A的數(shù)據(jù)導(dǎo)入臨時分區(qū)表B

(4)結(jié)束重定義,此時在DB的 Name Directory里,已經(jīng)將2個表進(jìn)行了交換。即此時基表A成了分區(qū)表,我們創(chuàng)建的臨時分區(qū)表B 成了普通表。此時我們可以刪除我們創(chuàng)建的臨時表B。

示例:

a. 創(chuàng)建基本表和索引

sql> create table unpar_table ( 

  2    id number(10) primary key, 

  3    create_date date 

  4    );

b. 收集表的統(tǒng)計(jì)信息 

sql> exec dbms_stats.gather_table_stats('icd', 'unpar_table', cascade => true); 

pl/sql 過程已成功完成

c. 創(chuàng)建臨時分區(qū)表 

sql>  create  table    par_table  (id  number  primary  key,  time  date)  partition  by  range 

(time) 

  2    (partition p1 values less than (to_date('2004-7-1', 'yyyy-mm-dd')), 

  3    partition p2 values less than (to_date('2005-1-1', 'yyyy-mm-dd')), 

  4    partition p3 values less than (to_date('2005-7-1', 'yyyy-mm-dd')), 

  5    partition p4 values less than (maxvalue));

d. 進(jìn)行重定義操作

d1. 檢查重定義的合理性 

d2. 如果d1沒有問題,開始重定義,這個過程可能要等一會

這里要注意:如果分區(qū)表和原表列名相同,可以用如下方式進(jìn)行: 

SQL> BEGIN  

DBMS_REDEFINITION.start_redef_table(  

uname => 'ICD',    

orig_table => 'unpar_table',  

int_table => 'par_table');  

END;  

/

如果分區(qū)表的列名和原表不一致,那么在開始重定義的時候,需要重新指定

映射關(guān)系: 

SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE( 

'ICD', 

'unpar_table', 

'par_table', 

'ID ID, create_date TIME', -- 在這里指定新的映射關(guān)系 

DBMS_REDEFINITION.CONS_USE_PK); 

這一步操作結(jié)束后,數(shù)據(jù)就已經(jīng)同步到這個臨時的分區(qū)表里來了。

d3. 同步新表,這是可選的操作

SQL> BEGIN 

  2    dbms_redefinition.sync_interim_table( 

  3    uname => 'ICD', 

  4    orig_table => 'unpar_table', 

  5    int_table => 'par_table'); 

  6    END; 

  7    / 

PL/SQL 過程已成功完成。

d4. 創(chuàng)建索引,在線重定義只重定義數(shù)據(jù),索引還需要單獨(dú)建立

sql> create index create_date_ind2 on par_table(time); 

d5. 收集新表的統(tǒng)計(jì)信息

sql> exec dbms_stats.gather_table_stats('icd', 'par_table', cascade => true);

d6. 結(jié)束重定義 

SQL> BEGIN 

  2    dbms_redefinition.finish_redef_table( 

  3    uname => 'ICD', 

  4    orig_table => 'unpar_table', 

  5   int_table => 'par_table'); 

  6    END; 

  7    / 

PL/SQL 過程已成功完成

結(jié)束重定義的意義: 

  基表unpar_table  和臨時分區(qū)表par_table  進(jìn)行了交換。  此時臨時分區(qū)表

par_table成了普通表,我們的基表unpar_table成了分區(qū)表。  

 

  我們在重定義的時候,基表unpar_table是可以進(jìn)行DML操作的。 只有在2

個表進(jìn)行切換的時候會有短暫的鎖表。

本文題目:Oracle普通表轉(zhuǎn)分區(qū)表的幾種方法
本文鏈接:http://www.aaarwkj.com/article24/jpdsce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、靜態(tài)網(wǎng)站商城網(wǎng)站、定制開發(fā)、網(wǎng)站設(shè)計(jì)、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
日本中文字幕一二三四区| 精品国产一区av在线| 青青草国产成人自拍视频在线观看| 国产精品盗摄一区二区三区| 欧美日韩另类综合一区| 欧美黄色免费电影网站| 免费女性啪啪无遮挡网站| 久久精品一本久久99精品| 亚洲国产精品视频中文字幕| 午夜免费视频观看在线| 日本熟女肥臀一区二区| 国产精品欧美一区二区视频| 精品毛片在线播放网站不卡| 国产精品亚洲欧美日韩在线播放| 国产精品乱码一区二区视频| 日韩一区二区三区av观看| 国产高潮呻吟久久av| 久娜娜精品视频在线观看| 国产欧美又粗又猛又爽老| 国产精品久久久久大屁股精品性色| 日韩一区二区免费看视频| 国产成十人十综合十亚洲| 黄片超刺激在线看在线| 国产精品一区二区国产激情久久| 91香蕉国产在线观看| 免费在线观看一区二区三区视频| 在线国产视频一区二区三区| 97视频网站在线观看| 亚洲综合日韩精品国产av| 亚洲女人天堂av在线| 国产三级传媒在线观看| 日本韩国欧美一区在线| 扒开少妇毛茸茸的大荫萍蒂| 亚洲熟女乱妇爽到高潮| 少妇被啪出水在线视频| 18禁成年大片免费网站| 成人激情视频在线观看| 成人免费视频观看国产| 一欧美一区二区三区| 岛国av有码高清在线观看| 伊人久久综在合线亚洲|