分割槽資料交換

2021-06-19 20:02:15 字數 2578 閱讀 3786

資料交換表面看上去是兩個段裡面的資料進行交換,其實就是資料字典的交換,但是表結構必須一樣

下面乙個例子交換分割槽和索引

建立分割槽

create table part_index_example

(x number ,

y number,

data varchar2(20)

)partition by range(x)

(partition part_index_part1 values less than(5),

partition part_index_part2 values less than(10));

建立索引

create index local_prefixed on part_index_example(x,y) local;

插入資料

insert into part_index_example(x,y,data) select mod(level ,10),level,level from dual connect by level<1000;

建立表create table less5  (

x number ,

y number,

data varchar2(20));

索引 create index less_ind on less5(x,y);

插入資料

insert into less5 select mod(level,5),level,level from dual connect by level<1000;

sql> select count(*) from less5;

count(*)

----------

999sql> select count(*) from part_index_example partition(part_index_part1);

count(*)

----------

504

sql> begin

2  dbms_stats.gather_table_stats(ownname => user ,tabname => upper('less5'),cascade => true);

3  dbms_stats.gather_table_stats(ownname => user ,tabname => upper('part_index_example'),cascade => true);

4  end;

5  /

pl/sql 過程已成功完成。

alter table part_index_example exchange partition part_index_part1 with table  less5 including indexes without validation;

這個操作非常快。

sql> select count(*) from part_index_example partition(part_index_part1);

count(*)

----------

999sql> select count(*) from less5;

count(*)

----------

504

通過交換,其實可以用一張空表與乙個分割槽進行交換,從而使得區間資料清除,並且又能將資料歸檔

可以將分割槽邊滿表,空表變分割槽,從而可以將滿表匯出資料庫。

注意:這個操作會導致全域性索引分割槽失效

全域性分割槽索引每乙個分割槽索引可能指向任何表分割槽,而我們取走了乙個分割槽,導致索引失敗。其中有些條目指向我們已經刪除資料,而新增的資料不再該索引條目中。使得在查詢時無法使用全域性索引分割槽

在對分割槽進行維護時,基本會導致全域性索引分割槽失效,

alter table part_index_example drop partition part_index_part2 ;

alter table part_index_example add partition part_index_part3  values less than(20);

alter table part_index_example exchange partition part_index_part1 with table  less5 including indexes without validation ;

都會導致全域性索引分割槽失效,但是如果在這些ddl語句後面加 update global indexes;

alter table part_index_example drop partition part_index_part2  update global indexes ;

alter table part_index_example add partition part_index_part3  values less than(20)  update global indexes;

alter table part_index_example exchange partition part_index_part1 with table  less5 including indexes without validation update global indexes;

資料交換 電路交換

為什麼要資料交換 那麼有幾個問題 1.n 2鏈路問題,有n個網路要相互連線 之後就想了乙個辦法,產生交換裝置進行連線 這樣子還有個問題,距離,連通性的問題 這樣就產生了交換網路 動態分配傳輸資源 實現資料從源主機穿越交換網路到達目的機 資料交換的型別 電路交換 報文交換 分組交換 最典型電路交換網路...

資料交換技術

廣域網研究的重點就是寬頻核心交換技術。從交換技術的發展歷史看,資料交換經歷了電路交換 報文交換 分組交換和綜合業務數字交換的發展過程。分組交換實質上是在 儲存 基礎上發展起來的。它兼有電路交換和報文交換的優點。常說的分組交換也就是儲存 方式中的報文分組交換方式。包括資料報方式和虛電路方式。資料報類似...

python 資料交換

例1 def change data data 0 data 1 data 1 data 0 print 函式內交換位置後 for i in range 2 print data d 3d i,data i end t 主程式 data 16,25 print 原始資料為 for i in rang...