資料交換表面看上去是兩個段裡面的資料進行交換,其實就是資料字典的交換,但是表結構必須一樣
下面乙個例子交換分割槽和索引
建立分割槽
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...