1、表中大小超過2g;
2、表中有歷史資料,新的資料被新增到新的分割槽中。
sql檢視表占用空間:
-- 檢視表中占用記憶體大小,固定用法
select segment_name, sum(bytes) / 1024 / 1024 || 'm'
from dba_extents
where segment_name = '表名'
group by segment_name;
1、提高查詢效能:對分割槽的物件查詢自己所在的區域,提高檢索速度;
2、增強可用性:如果表中某個分割槽出現故障,表中其他分割槽的資料仍可同;
3、易維護:如果表中某個分割槽出現故障,需要修復資料,只修改該分割槽即可;
3、均衡i/o:可以把不同的分割槽對映到磁碟以均衡i/o,改善系統效能。
是乙個或多個資料檔案的集合,所有的資料物件都存放在指定的表空間中,但主要存放的是表。
當表中的資料量不斷增大,查詢資料的速度就會變慢,應用程式的效能就會下降,這時就應該考慮對錶進行分割槽。表進行分割槽後,邏輯上表仍然是一張完整的表,
只是將表中的資料在物理上存放到多個表空間(物理檔案上),這昂再查詢資料,不需要每次都掃瞄整張表。
注意:
① 對已存在的表是不能增加分割槽的,需要建立臨時表,分割槽後再匯入百萬級(1592292) 資料還是比較快的 (28.469秒) ;
例:可根據年月日任意分割槽
原因是時間表分割槽過期,對於sql檔案中的日期,大於分割槽表中range設定的日期 後的資料都無法匯入
range分割槽新插入的資料時間,不能超過分割槽設定的最後時間,如:不能超過上面截圖圈中的時間。
-- 建立分割槽 表名是 a_test, 欄位是:pk_id、people_create、state; hash方式建立
create table a_test (pk_id varchar2(50),people_create varchar2(50), state number) partition by hash(people_create) partitions 4;
例: plsql檢視
常用語句:
-- 查詢當前使用者下的分割槽表
select
* from
user_tables
where
partitioned=
'yes'
-- 檢視分割槽,不能在tables後加別名,要在分割槽後加別名,例:
select
* from
tables
partition
(aa) tab;
select
* from
a_test
partition
(sys_p25);
select
* from
a_test
partition
(sys_p26);
select
* from
a_test
partition
(sys_p27);
select
* from
a_test
partition
(sys_p28);
-- 檢視分割槽,巢狀查詢加別名
select
* from
(select
* from
a_test
partition
(sys_p25)) t
where
t.pk_id =
'2007131443'
-- 刪除分割槽,
注意該分割槽中的資料也會被刪除
delete
from
a_test
partition
(sys_p24);
-- 修改現有的分割槽名
alter
table
a_test
rename
partition
sys_p25
top25;
-- 顯示當前使用者所有分割槽表的資訊:
user_part_tables
固定寫法
select
* from
user_part_tables;
-- 顯示當前使用者所有分割槽表的詳細分割槽資訊
select
* from
user_tab_partitions;
-- 增加分割槽
注意:修改資料可能會遇到:ora-14402: 更新分割槽關鍵字列將導致分割槽的更改
預設情況下,oracle的分割槽表對分割槽欄位是不允許進行update操作,可以通過開啟表的 row movement 屬性對分割槽字段表的update操作
alter
table
a_test
enable
rowmovement;
oracle表分割槽設計 ORACLE 分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...
oracle表分割槽設計 ORACLE分割槽表的設計
分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存和分析巨量的歷史資料。分割槽表...
oracle表分割槽設計 ORACLE 分割槽表的設計
oracle 分割槽表的設計 分割槽表的概念 分割槽致力於解決支援極大表和索引的關鍵問題。它採用他們分解成較小和易於管理的稱為分割槽的片 piece 的方法。一旦分割槽被定義,sql語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...