Oracle單錶分割槽

2021-10-08 02:49:52 字數 2905 閱讀 1543

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語句就可以訪問的操作某乙個分割槽而不是整個表,因而提高管理的效率。分割槽對於資料倉儲應用程式非常有效,因為他們常常儲存...