tft每日頭條

 > 科技

 > oracle數據表如何分區

oracle數據表如何分區

科技 更新时间:2024-12-27 23:01:53
概述

有朋友問了一些關于Oracle數據庫分區方面的内容,因為之前也沒怎麼寫這塊,所以整理了下關于分區表的一些内容。


表空間及分區表的概念

表空間:

是一個或多個數據文件的集合,所有的數據對象都存放在指定的表空間中,但主要存放的是表, 所以稱作表空間。

分區表:

當表中的數據量不斷增大,查詢數據的速度就會變慢,應用程序的性能就會下降,這時就應該考慮對表進行分區。表進行分區後,邏輯上表仍然是一張完整的表,隻是将表中的數據在物理上存放到多個表空間(物理文件上),這樣查詢數據時,不至于每次都掃描整張表。

表分區後,分區變成各自的段,而表表成一個邏輯名稱。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)1


表分區的具體作用

Oracle的表分區功能通過改善可管理性、性能和可用性,從而為各式應用程序帶來了極大的好處。通常,分區可以使某些查詢以及維護操作的性能大大提高。此外,分區還可以極大簡化常見的管理任務,分區是構建千兆字節數據系統或超高可用性系統的關鍵工具。

分區功能能夠将表、索引或索引組織表進一步細分為段,這些數據庫對象的段叫做分區。每個分區有自己的名稱,還可以選擇自己的存儲特性。從數據庫管理員的角度來看,一個分區後的對象具有多個段,這些段既可進行集體管理,也可單獨管理,這就使數據庫管理員在管理分區後的對象時有相當大的靈活性。但是,從應用程序的角度來看,分區後的表與非分區表完全相同,使用 SQL DML 命令訪問分區後的表時,無需任何修改。

什麼時候使用分區表:

1、表的大小超過2GB。

2、表中包含曆史數據,新的數據被增加都新的分區中。


表分區的優缺點

表分區有以下優點:

1、改善查詢性能:對分區對象的查詢可以僅搜索自己關心的分區,提高檢索速度。

2、增強可用性:如果表的某個分區出現故障,表在其他分區的數據仍然可用;

3、維護方便:如果表的某個分區出現故障,需要修複數據,隻修複該分區即可;

4、均衡I/O:可以把不同的分區映射到磁盤以平衡I/O,改善整個系統性能。

缺點:

分區表相關:已經存在的表沒有方法可以直接轉化為分區表。不過Oracle 提供了在線重定義表的功能。


表分區的分類

1、範圍分區

範圍分區将數據基于範圍映射到每一個分區,這個範圍是你在創建分區時指定的分區鍵決定的。這種分區方式是最為常用的,并且分區鍵經常采用日期。舉個例子:你可能會将銷售數據按照月份進行分區。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)2

當使用範圍分區時,請考慮以下幾個規則:

1)每一個分區都必須有一個VALUES LESS THEN子句,它指定了一個不包括在該分區中的上限值。分區鍵的任何值等于或者大于這個上限值的記錄都會被加入到下一個高一些的分區中。

2)所有分區,除了第一個,都會有一個隐式的下限值,這個值就是此分區的前一個分區的上限值。

3)在最高的分區中,MAXVALUE被定義。MAXVALUE代表了一個不确定的值。這個值高于其它分區中的任何分區鍵的值,也可以理解為高于任何分區中指定的VALUE LESS THEN的值,同時包括空值。

2、列表分區

該分區的特點是某列的值隻有幾個,基于這樣的特點我們可以采用列表分區。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)3

3、散列分區

這類分區是在列值上使用散列算法,以确定将行放入哪個分區中。當列的值沒有合适的條件時,建議使用散列分區。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)4

散列分區為通過指定分區編号來均勻分布數據的一種分區類型,因為通過在I/O設備上進行散列分區,使得這些分區大小一緻。

hash分區最主要的機制是根據hash算法來計算具體某條紀錄應該插入到哪個分區中,hash算法中最重要的是hash函數,Oracle中如果你要使用hash分區,隻需指定分區的數量即可。建議分區的數量采用2的n次方,這樣可以使得各個分區間數據分布更加均勻。

4、組合範圍列表分區

這種分區是基于範圍分區和列表分區,表首先按某列進行範圍分區,然後再按某列進行列表分區,分區之中的分區被稱為子分區。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)5

5、複合範圍散列分區

這種分區是基于範圍分區和散列分區,表首先按某列進行範圍分區,然後再按某列進行散列分區。

oracle數據表如何分區(詳解oracle數據庫分區表--概念)6


篇幅有限,這裡主要介紹一些概念性東西,關于分區的一些常用維護命令後面再單獨介紹下,感興趣的朋友可以關注一下~

oracle數據表如何分區(詳解oracle數據庫分區表--概念)7

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved