[間隔分割槽]Oracle10g、11g建立間隔分割槽表
為了簡化資料庫大表的管理,例如在資料倉儲中一般都是TB級的數量級.ORACLE8以後推出了分割槽選項.分割槽將表分離在若於不同的表空間上,用分而治之的方法來支撐元限膨脹的大表,組大表在物理一級的可管理性.將大表分割成較小的分割槽可以改善表的維護、備份、恢復、事務及查詢效能。
分割槽的優點: 1.增強可用性:如果表的一個分割槽由於系統故障而不能使用,表的其餘好的分割槽仍可以使用; 2.減少關閉時間:如果系統故障隻影響表的一部份分割槽,那麼只有這部份分割槽需要修復,礦能比整個大表修復花的時間更少; 3.維護輕鬆:如果需要得建表,獨產管理每個公區比管理單個大表要輕鬆得多; 4.均衡I/O:可以把表的不同分割槽分配到不同的磁碟來平衡I/O改善效能; 5.改善效能:對大表的查詢、增加、修改等操作可以分解到表的不同分割槽來並行執行,可使執行速度更快,在資料倉儲的TP查詢特別有用。 6.分割槽對使用者透明,終端使用者感覺不到分割槽的存在。
在Oracle10g中,沒有定義間隔分割槽,只能透過範圍分割槽實現間隔分割槽功能,如果要實現自動建立分割槽,只能透過建立JOB或者scheduler來實現;而在11g中,Oracle直接提供了間隔分割槽功能,大大簡化了間隔分割槽的實現。
先介紹一下Oracle11g的間隔分割槽功能,主要透過INTERVAL關鍵字來實現,官方參考文件如下:
上述sql語句建立了4個不等區間的分割槽,分別是2008年1月1日之前的所有資料、08年到09年的所有資料、09年上半年的所有資料、09年下半年的所有資料;同時,它也制定了在2010年1月1日之後,每個月單獨建立一個分割槽。需要注意一點,間隔分割槽的鍵值只能是一個列,並且該列只能是Date型別或者number型別。點選(此處)摺疊或開啟
- CREATE TABLE interval_sales
- ( prod_id NUMBER(6)
- , cust_id NUMBER
- , time_id DATE
- , channel_id CHAR(1)
- , promo_id NUMBER(6)
- , quantity_sold NUMBER(3)
- , amount_sold NUMBER(10,2)
- )
- PARTITION BY RANGE (time_id)
- INTERVAL(NUMTOYMINTERVAL(1, \'MONTH\'))
- ( PARTITION p0 VALUES LESS THAN (TO_DATE(\'1-1-2008\', \'DD-MM-YYYY\')),
- PARTITION p1 VALUES LESS THAN (TO_DATE(\'1-1-2009\', \'DD-MM-YYYY\')),
- PARTITION p2 VALUES LESS THAN (TO_DATE(\'1-7-2009\', \'DD-MM-YYYY\')),
- PARTITION p3 VALUES LESS THAN (TO_DATE(\'1-1-2010\', \'DD-MM-YYYY\')) )
下面看一下在Oracle10g下如何實現間隔分割槽功能。
點選(此處)摺疊或開啟
-
SQL> create table HOEGH
-
-
(
-
-
part_id integer primary key,
-
-
part_date date,
-
-
part_dec varchar2(100)
-
-
)
-
-
partition by range(part_date)
-
-
(
-
partition part_01 values less than(to_date(\'2015-01-01\',\'yyyy-mm-dd\')),
-
-
partition part_02 values less than(to_date(\'2015-02-01\',\'yyyy-mm-dd\')) ,
-
-
partition part_03 values less than(to_date(\'2015-03-01\',\'yyyy-mm-dd\')) ,
-
-
partition part_04 values less than(to_date(\'2015-04-01\',\'yyyy-mm-dd\')) ,
-
);
-
-
-
表已建立。
上述sql語句建立了4個不等區間的分割槽,分別是2015年1月1日之前的所有資料、15年1月的所有資料、15年2月
所有資料、15年3月所有資料;如果需要建立之後的分割槽,需要透過alter table語句來實現。
有以上的對比可以看出,Oracle11g自動建立間隔分割槽十分方便;而10g則需要跑指令碼才能實現自動建立分割槽的功能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1572579/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 移動分割槽表和分割槽索引的表空間索引
- 分割槽表之自動增加分割槽(11G)
- 增加表分割槽時,為local分割槽索引指定不同表空間的方法索引
- oracle分割槽表和分割槽表exchangeOracle
- OceaBase 分割槽表建立技巧
- oracle分割槽表和非分割槽表exchangeOracle
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- 建立sawp分割槽
- MySql建立分割槽MySql
- linux建立新分割槽擴充套件磁碟空間Linux套件
- 非分割槽錶轉換成分割槽表
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- PG的非分割槽表線上轉分割槽表
- oracle 11g 分割槽表建立(年月日周時分秒)Oracle
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- 【MYSQL】 分割槽表MySql
- 教程:如何使用DataLakeAnalytics建立分割槽表
- Oracle12c:建立主分割槽、子分割槽,實現自動分割槽插入效果Oracle
- boot分割槽剩餘空間不足boot
- 硬碟空間的管理和分割槽硬碟
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- 【Linux】MBR磁碟分割槽表只能有四個分割槽?Linux
- interval 分割槽表clob預設表空間指定問題
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 如何使用Data Lake Analytics建立分割槽表
- 騰訊雲CVM主機在原分割槽(主分割槽)上增加磁碟空間
- MySQL 分割槽表探索MySql
- 分割槽表-實戰
- Linux分割槽方案、分割槽建議Linux
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- 非分割槽錶轉換成分割槽表以及注意事項