日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Oracle表空間詳解

瀏覽:381日期:2023-05-30 16:13:55
目錄
  • 1. 基本概念
  • 2. 范圍分區
  • 3. Hash分區(散列分區)
  • 4. 復合分區

1. 基本概念

Oracle表分區是將一個大型表分割成更小、更易于管理的部分的技術。分區后的表被稱為分區表,其中每個分區都可以獨立地進行維護、管理和查詢。表分區可基于表中的一列或多列,稱為分區鍵,分區鍵的值確定了每行數據屬于哪個分區。

使用分區具有以下優點:

  • (1)改善查詢性能:由于表分區將數據分割成更小、更可管理的部分,對分區對象的查詢可以僅搜索特定分區,提高檢索速度。如在范圍分區的情況下,可以更快地查詢特定時間段的數據。
  • (2)維護方便:分而治之,每個分區都可以獨立地進行維護和管理,更容易地維。如表的某個分區出現故障,需要修復數據,只修復該分區即可;又如在范圍分區的情況下,可以更容易地刪除或歸檔舊數據。
  • (3)可用性:實際各分區的數據是獨立存放,如果表的某個分區出現故障,表在其他分區的數據仍然可用;
  • (4)均衡I/O:可把不同的分區映射到磁盤以平衡I/O,改善整個系統性能;并且可以更快地加載數據,因為可以并行加載多個分區。如在哈希分區的情況下,可以并行加載多個分區,從而大大提高了數據加載的速度。

Oracle數據庫提供對表或索引的分區常用方法主要有三種:

  • 范圍分區
  • Hash分區(散列分區)
  • 復合分區

先建三個表空間:

create tablespace ma_tra01 datafile "D:\oracle\product\10.2.0\oradata\orcl\ma_tra01.dnf" size 50M; 
create tablespace ma_tra02 datafile "D:\oracle\product\10.2.0\oradata\orcl\ma_tra02.dnf" size 50M; 
create tablespace ma_tra03 datafile "D:\oracle\product\10.2.0\oradata\orcl\ma_tra03.dnf" size 50M;

2. 范圍分區

范圍分區就是對數據表中的某個值的范圍進行分區,根據某個值的范圍,決定將該數據存儲在哪個分區上。如根據序號分區,根據業務記錄的創建日期進行分區等。

e.g.

需求描述:有一個物料交易表,表名:material_transactions。該表將來可能有千萬級的數據記錄數。要求在建該表的時候使用分區表。 這時候我們可以使用序號分區三個區,每個區中預計存儲三千萬的數據,也可以使用日期分區,如每五年的數據存儲在一個分區上。

  • 根據交易記錄的序號分區建表
create table material_transactions ( 
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300),
transaction_date date not null 
) 
partition by range (transaction_id) ( 
partition part_01 values less than(30000000) tablespace ma_tra01,
partition part_02 values less than(60000000) tablespace ma_tra02, 
partition part_03 values less than(maxvalue) tablespace ma_tra03); 
  • 根據交易日期分區建表
create table material_transactions (
transaction_id number primary key, 
item_id number(8) not null,
item_description varchar2(300), 
transaction_date date not null ) 
partition by range (transaction_date) (
partition part_01 values less than(to_date("2006-01-01","yyyy-mm-dd")) tablespace ma_tra01,
partition part_02 values less than(to_date("2010-01-01","yyyy-mm-dd")) tablespace ma_tra02,
partition part_03 values less than(maxvalue) tablespace ma_tra03); 

這樣分別建了以交易序號和交易日期來分區的分區表。

  • 插入數據:每次插入數據的時候,系統將根據指定的字段的值來自動將記錄存儲到制定的分區(表空間)中。
insert into material_transactions values(1,12,"BOOKS1",sysdate); 
insert into material_transactions Values(2,12, "BOOKS2",sysdate+30); 
insert into material_transactions values(3,12, "BOOKS3",to_date("2006-05-30","yyyy-mm-dd")); 
insert into material_transactions values(4,12, "BOOKS4",to_date("2007-06-23","yyyy-mm-dd")); 
insert into material_transactions values(5,12, "BOOKS5",to_date("2011-02-26","yyyy-mm-dd")); 
insert into material_transactions values(6,12, "BOOKS6",to_date("2011-04-30","yyyy-mm-dd")); 
Commit;
  • 查詢分區表
select * from material_transactions partition(part_03) t

可以對分區表進行跟新或刪除,默認情況下,oracle的分區表對于分區字段是不允許進行update操作的,如果有對分區字段行進update,就會報ORA-14402錯誤: 更新分區關鍵字列將導致分區的更改。但是可以通過打開表的row movement屬性來允許對分區字段的update操作,但是這樣會導致無效對象的產生,所以不推薦使用。可通過刪除舊數據,插入新數據來解決。

還可以根據需求,使用兩個字段的范圍分布來分區,如partition by range ( transaction_id ,transaction_date), 分區條件中的值也做相應的改變。

  • 增加一個分區
Alter Table  material_transactions Add Partition part_04 Values Less Than (to_date("20150101","yyyymmdd")) Tablespace ma_tra04

增加分區的條件必須大于現有分區的最大條件值,否則會提示ORA-14074:分區界限必須調整為高于最后一個分區界限

  • 合并兩個個分區
Alter Table material_transactions Merge Partitions part_01,part_02 Into Partition part_02;
  • 刪除分區(數據也會被刪除)

3. Hash分區(散列分區)

散列分區為通過指定分區編號來均勻分布數據的一種分區類型,因為通過在I/O設備上進行散列分區,使得這些分區大小一致。如將物料交易表的數據根據交易ID散列地存放在指定的三個表空間中:

create table material_transactions_hash (
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300), 
transaction_date Date) 
partition by hash(transaction_id) (
partition part_01 tablespace ma_tra01, 
partition part_02 tablespace ma_tra02, 
partition part_03 tablespace ma_tra03); 

建表成功,此時插入數據,系統將按transaction_id將記錄散列地插入三個分區中,這里也就是三個不同的表空間中。

4. 復合分區

有時需要根據范圍分區后,每個分區內的數據再散列地分布在幾個表空間中,這樣我們就要使用復合分區。復合分區是先使用范圍分區,然后在每個分區內 再使用散列分區的一種分區方法,如將物料交易的記錄按時間分區,然后每個分區中的數據分三個子分區,將數據散列地存儲在三個指定的表空間中:

create table material_transactions_test  (
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300), 
transaction_date date ) 
partition by range(transaction_date) subpartition by hash(transaction_id) 
subpartitions 3 store in (ma_tra01,ma_tra02,ma_tra03) (
partition part_01 values less than(to_date("2006-01-01","yyyy-mm-dd")), 
partition part_02 values less than(to_date("2010-01-01","yyyy-mm-dd")), 
partition part_03 values less than(maxvalue) ); 

該例中,先是根據交易日期進行范圍分區,然后根據交易的ID將記錄散列地存儲在三個表空間中。

分區表可以建立局部索引與全局索引,當分區表中出現許多事務并且要保證所有分區中的數據記錄的唯一性時需要采用全局索引。

Create Index idx_matra_itemid On material_transactions(item_id) Local;
Create Index idx_matra_itemid On material_transactions(item_id);

到此這篇關于Oracle表空間詳解的文章就介紹到這了,更多相關Oracle表空間內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Oracle
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久亚洲| 麻豆一区二区99久久久久| 久久精品国产久精国产爱| 日本不卡视频在线观看| 亚洲精选久久| 四虎在线精品| 91亚洲精品视频在线观看| 亚洲精品伊人| 日韩精品三区四区| 国产精品免费不| 精品精品国产三级a∨在线| 国产一区二区色噜噜| 国产福利资源一区| 国产精品伦一区二区| 国产在线不卡一区二区三区| av免费不卡国产观看| 视频小说一区二区| 婷婷亚洲综合| 免费视频一区二区| 亚洲精品乱码| 欧美激情三区| 久久国产日韩| 美女久久一区| 欧美日韩99| 国产成人久久精品麻豆二区| 天堂网av成人| 午夜av一区| 老牛国产精品一区的观看方式| 天堂va蜜桃一区二区三区| 97精品国产99久久久久久免费| 久久只有精品| 国产综合色区在线观看| 亚洲深爱激情| 久久国产日韩欧美精品| 国产一区2区| 国产精品88久久久久久| 丝瓜av网站精品一区二区| 青青草国产精品亚洲专区无| 精品国产美女a久久9999| 久久国产电影| 亚洲aⅴ网站| 精品视频自拍| 久久一区二区三区电影| 四虎精品一区二区免费| 国产精品久久久久久久久免费高清 | 欧美日韩激情| 日本精品国产| 色婷婷综合网| 欧美黄色一区| 日韩精品一区二区三区免费观影| 夜夜嗨一区二区| 国产欧美69| 亚洲二区免费| 中文字幕亚洲精品乱码| 成人日韩av| 午夜亚洲一区| 国产一区二区三区天码| 久久国产精品99国产| 日韩中文字幕| 一本大道色婷婷在线| 在线精品视频一区| 97精品国产| 日韩和欧美的一区| 国际精品欧美精品| 欧美综合二区| 国产不卡人人| 日韩av资源网| 亚洲精品99| 国产精品一卡| 国产手机视频一区二区| 国产精品99一区二区三| 中文字幕视频精品一区二区三区| 日韩欧美二区| 欧美久久一区二区三区| 欧美成人基地 | 久久婷婷av| 97精品国产一区二区三区| 久久成人av| 日韩精选在线| 视频在线在亚洲| 亚洲欧美视频一区二区三区| 欧美不卡视频| 激情综合网址| 久久精品青草| 91精品国产91久久久久久黑人| 97se综合| 日韩精品永久网址| 成人在线免费观看91| 久久精品国产免费| 欧美午夜三级| 欧美精品三级在线| 欧美中文高清| 国产欧美69| 国产精品视频首页| 国产精品久久久亚洲一区| 国产免费av国片精品草莓男男| 日韩精品成人| 日韩高清一级| 国产欧美一区二区三区米奇| 青草久久视频| 欧美日本一区| 国产精品美女午夜爽爽| 国产精品mv在线观看| 国产精品xxxav免费视频| 国产欧美综合一区二区三区| 国产日韩欧美一区二区三区| 国产亚洲一卡2卡3卡4卡新区| 国产探花一区| 欧美成a人片免费观看久久五月天| 麻豆国产精品一区二区三区| 国精品产品一区| 日本免费一区二区三区四区| 久久国产直播| 99国产精品久久久久久久| 蜜臀久久99精品久久久画质超高清 | 91精品99| 国产精品婷婷| 午夜精品福利影院| 国产日本久久| 国产在线观看www| 99国产精品免费视频观看| 五月天久久网站| 免费观看在线综合色| 久久国产人妖系列| 精品72久久久久中文字幕| 欧美日韩国产v| 亚洲专区欧美专区| 欧美日韩在线精品一区二区三区激情综合| 国产极品一区| 国产精品蜜芽在线观看| 激情久久久久久久| 蜜桃一区二区三区在线观看| 国产伦理久久久久久妇女| 中文字幕人成乱码在线观看| 国产综合精品| 天堂精品久久久久| 精品国产乱码久久久久久樱花| 色婷婷精品视频| 亚洲一区二区小说| 国产精品香蕉| 久久一区二区三区电影| 亚洲视频国产精品| 国产精品视频首页| 欧美综合另类| 在线精品视频一区| 欧美激情亚洲| 最新亚洲一区| 国产极品嫩模在线观看91精品| 99热国内精品| 日本不卡一二三区黄网| 欧美国产美女| 一区二区三区午夜视频| 久久久久亚洲精品中文字幕| 激情欧美一区| 国产另类在线| 精品一区免费| 六月丁香综合在线视频| 最新国产拍偷乱拍精品| 欧美激情福利| 91久久黄色| 久久97视频| 蜜桃视频一区二区三区在线观看| 国产va免费精品观看精品视频| 日本欧洲一区二区| 日韩国产欧美一区二区| 日本va欧美va精品发布| 蜜桃tv一区二区三区| 欧美激情福利| 亚洲午夜免费| 精品国模一区二区三区| 欧美日韩在线精品一区二区三区激情综合 | 日韩在线精品| 欧美一级二级三级视频| 91精品高清| 精品高清久久| 日本一不卡视频| 亚洲福利专区| 久久在线91| 亚洲精品乱码日韩| 欧美影院三区| 精品欠久久久中文字幕加勒比| 免费精品视频在线| 999精品色在线播放| 麻豆精品新av中文字幕| 香蕉视频成人在线观看| 中文字幕人成乱码在线观看 | 麻豆国产精品| 日韩激情中文字幕| 午夜日韩福利| 蜜桃成人精品| 久久97视频| 日韩av一二三| 蜜桃久久久久久| 亚洲二区在线| 成人三级高清视频在线看| 国产美女亚洲精品7777| 亚洲精品影视| 久久午夜影视| 91精品久久久久久久久久不卡| 成人国产精选|