电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Oracle表空間詳解

瀏覽:268日期: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
相關文章:
主站蜘蛛池模板: 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 北京办公室装修,办公室设计,写字楼装修-北京金视觉装饰工程公司 北京成考网-北京成人高考网 | 家乐事净水器官网-净水器厂家「官方」 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 土壤肥料养分速测仪_测土配方施肥仪_土壤养分检测仪-杭州鸣辉科技有限公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 不干胶标签,不干胶标签纸_厂家-山东同力胶粘制品 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 成都思迪机电技术研究所-四川成都思迪编码器 | 雄松华章(广州华章MBA)官网-专注MBA/MPA/MPAcc/MEM辅导培训 | 交通气象站_能见度检测仪_路面状况监测站- 天合环境科技 | 液氮罐(生物液氮罐)百科-无锡爱思科 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 |