Oracle建立分割槽表

2022-07-22 04:51:13 字數 2253 閱讀 6268

1、一般一張表超過2g的大小,oracle是推薦使用分割槽表的。

2、這張表主要是查詢,而且可以按分割槽查詢,只會修改當前最新分割槽的資料,對以前的不怎麼做刪除和修改。

3、資料量大時查詢慢。

4、便於維護,可擴充套件:11g 中的分割槽表新特性:partition(分割槽)一直是 oracle 資料庫引以為傲的一項技術,正是分割槽的存在讓 oracle 高效的處理海量資料成為可能,在 oracle 11g 中,分割槽技術在易用性和可擴充套件性上再次得到了增強。

5、與普通表的 sql 一致,不需要因為普通表變分割槽表而修改我們的**。

oracle表分割槽分為四種型別,分別為範圍分割槽,雜湊分割槽,列表分割槽和復合分割槽。

1、範圍分割槽

就是根據資料庫表bai中某一字段的值的範圍來劃分分割槽。

資料中有空值,oracle機制會自動將其規劃到maxvalue的分割槽中。

2、雜湊分割槽

根據欄位的hash值進行均勻分布,盡可能地實現各分割槽所雜湊的資料相等。

雜湊分割槽即為雜湊分割槽,oracle採用雜湊碼技術分割槽,具體分割槽如何由oracle說的算,也可能我下一次搜尋就不是這個資料了。

3、列表分割槽

列表分割槽明確指定了根據某字段的某個具體值進行分割槽,而不是像範圍分割槽那樣根據欄位的值範圍來劃分的。

4、復合分割槽

根據範圍分割槽後,每個分區內的資料再雜湊地分布在幾個表空間中,這樣我們就要使用復合分割槽。復合分割槽是先使用範圍分割槽,然後在每個分割槽同再使用雜湊分割槽的一種分割槽方法。

比如將part_date的記錄按時間分割槽,然後每個分割槽中的資料分三個子分割槽,將資料雜湊地儲存在三個指定的表空間中。

符合分割槽目前只能是範圍打頭,如:範圍-雜湊分割槽,範圍-列表分割槽

使用較多的目前感覺是範圍分割槽和列表分割槽。

下面練習下範圍分割槽的建立。

表已建立  目前的oracle是不支援對已有表直接轉換成為分割槽表,可行的辦法是新建乙個分割槽表將原表資料匯入到分割槽表

新建表temp,接著之前的表結構來

因為linux伺服器的時間有問題,更新下時間

首先是範圍分割槽,範圍分割槽在oracle11g和之前的版本有了不同的特性,通過interval-partition特性來實現,簡單的說就是在之前的版本如果分割槽表用完了,就需要手動建立表分割槽,這種形式的建立存在風險,當我們的資料試圖插入不存在的分割槽時,oracle會拒絕執行插入操作,導致db操作失敗,而oracle作為乙個成熟的dbms,自然需要解決這些問題,所以就出現了interval-partition,即間隔分割槽,它的作用就是當試圖插入的分割槽不存在時就以規定的間隔自動建立表分割槽,普通的表分割槽就不弄了,試一下interval-partition。

可以看到表分割槽已經在工作了,接下來將普通的範圍分割槽改為間隔分割槽,

重新設定下時間,然後插入新的資料

然後往分割槽表插入24號資料

另外也可以直接在建立表的時候指定間隔分割槽

partition by range (timer) interval (numtodsinterval (5, 『day』) ),效果是一樣的。

範圍分割槽的建立是比較簡單和直接的,通過partition by list(字段)建立,它相當於根據字段值建立乙個單個的表分割槽,這對於一些根據特殊欄位來存放資料的情況十分有用。

Oracle 建立分割槽表

建立表空間 create tablespace mytablespace 1 datafile c oracle product 10.1.0 oradata mydata mytablespace1.dbf size 100m extent management local uniform siz...

Oracle 建立分割槽表

建立表空間 create tablespace mytablespace 1 datafile c oracle product 10.1.0 oradata mydata mytablespace1.dbf size 100m extent management local uniform siz...

Oracle 建立分割槽表

create table 建立表 create table testtable id integer not null,name nvarchar2 100 not null,insertedtime date not null 同時建立分割槽表 partition by range inserte...