真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

DB2分區(qū)數(shù)據(jù)庫淺析

1、概念描述

DB2數(shù)據(jù)庫分區(qū)是 DB2 企業(yè)版 DPF(Data Partitioning Feature)選件提供的,它主要用來個分區(qū)(邏輯的或物理的)上分布大型數(shù)據(jù)庫提供了必要的可伸縮性,并利用了一個無共享(shared-nothing)結構。數(shù)據(jù)庫在一個非共享的環(huán)境中被分解為獨立的分區(qū),每個分區(qū)都具有自己的資源,例如內(nèi)存,CPU 和磁盤以及自己的數(shù)據(jù)、索引、配置文件和事務日志。數(shù)據(jù)庫分區(qū)有時稱為節(jié)點或數(shù)據(jù)庫節(jié)點。通過 DPF“分治”的處理,可伸縮性可在單一服務器(縱向擴展)或跨服務器集群(橫向擴展)中獲得增強。

泰和網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,泰和網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為泰和上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的泰和做網(wǎng)站的公司定做!

 

使用 DPF最顯而易見的理由之一就是提高查詢工作負載和 INSERT/UPDATE/DELETE 操作的性能。DPF 還可以克服部分 DB2 的架構限制。例如,在 DB2 中,對 4 KB 的頁面大小而言,表的最大大小是 64 GB;對于 8 KB 的頁面大小而言,表的最大大小是 128 GB;對于 16 KB 的頁面大小而言,表的最大大小是 256 GB;對于 32 KB 的頁面大小而言,表的最大大小是 512 GB。在 DB2 中,表和表空間的大小限制是根據(jù)每個分區(qū)進行規(guī)定的??缍鄠€分區(qū)劃分數(shù)據(jù)庫將允許您根據(jù)環(huán)境中分區(qū)數(shù)目的因數(shù)來增加表的最大大小。

 

 

DB2數(shù)據(jù)庫分區(qū)實例圖:

DB2分區(qū)數(shù)據(jù)庫淺析

2、DPF對數(shù)據(jù)庫性能產(chǎn)生的影響

數(shù)據(jù)是通過Hash算法均允地散列到不同的分區(qū)內(nèi)的,每個分區(qū)只負責處理自己的數(shù)據(jù)。用戶發(fā)出 SQL 操作后,被連接的分區(qū)被稱為 Coordinate Node,它負責處理用戶的請求,并根據(jù) Partition key(分區(qū)鍵)將用戶的請求分解成多個子任務交由不同分區(qū)并行處理,最后將不同分區(qū)的執(zhí)行結果經(jīng)過匯總返回給用戶,分區(qū)對應用來說是透明的。

在 DB2 中,數(shù)據(jù)庫分區(qū)可以部署在集群或 MPP(多臺單個CPU的機器上,建立的一個有多個partition的DB2實例,在其中的每臺機器上建立1個Partition)環(huán)境下,也就是說數(shù)據(jù)庫分區(qū)分布在不同的機器上;數(shù)據(jù)庫分區(qū)也可以部署在同一臺 SMP(一臺有多個CPU的機器上,建立的一個有多個分區(qū)的DB2實例,其中分區(qū)數(shù)量不超過已有CPU的數(shù)量)機器上,在同一臺機器上的分區(qū)我們稱為邏輯分區(qū)。同時,我們還可以在集群或 MPP 環(huán)境下部署多個分區(qū),在集群或 MPP 每一個節(jié)點上部署多個邏輯分區(qū)。

 

采用數(shù)據(jù)庫分區(qū)有幾個好處,以下簡單介紹一下:

查詢擴展性

這是采用數(shù)據(jù)庫分區(qū)最主要的原因之一。將一個大的數(shù)據(jù)庫分成多個小的數(shù)據(jù)庫可以提高查詢的性能,因為每個數(shù)據(jù)庫分區(qū)擁有自己的一部分數(shù)據(jù)。假設現(xiàn)在掃描10萬條記錄,對一個單一分區(qū)的數(shù)據(jù)庫來講,該掃描操作需要數(shù)據(jù)庫管理器獨立掃描10萬條記錄,如果將數(shù)據(jù)庫系統(tǒng)做成10個分區(qū),并將這10萬條記錄平均分配到這10個分區(qū)上,那么每個數(shù)據(jù)庫分區(qū)的數(shù)據(jù)庫管理器只掃描10萬記錄。

架構限制

非分區(qū)數(shù)據(jù)庫的最大的表取決于頁面大小,4K頁最大支持64 GB,32K頁最大支持512 GB數(shù)據(jù)量。表和表空間大小限制是每個分區(qū)上的限制,因此將數(shù)據(jù)庫分成N個分區(qū)可以將表的最大尺寸增加為單個分區(qū)表最大尺寸的N倍。內(nèi)存也可能是個限制,特別是在32位操作系統(tǒng)環(huán)境,因為每個數(shù)據(jù)庫分區(qū)管理并擁有自己的資源,因此通過數(shù)據(jù)庫分區(qū)可以克服這個限制。

數(shù)據(jù)庫裝載性能

數(shù)據(jù)庫分區(qū)可以并行裝載數(shù)據(jù)到所有數(shù)據(jù)庫分區(qū),極大減少單表的裝載時間,這對于像實時商業(yè)智能系統(tǒng)那樣對數(shù)據(jù)裝載的時間要求特別高的系統(tǒng)特別重要。

數(shù)據(jù)庫維護性能

將數(shù)據(jù)庫分散到多個數(shù)據(jù)庫分區(qū)服務器可以加快系統(tǒng)維護,因為每個操作都運行在分區(qū)所管理的一個數(shù)據(jù)子集上面,這樣可以通過數(shù)據(jù)庫分區(qū)進一步減少創(chuàng)建索引的時間,減少搜集統(tǒng)計信息的時間,因為runstats僅運行在一個數(shù)據(jù)庫分區(qū)上面,減少表重整(reorg)的時間。

備份/恢復性能

將數(shù)據(jù)庫分區(qū)到不同的數(shù)據(jù)庫服務器上可以大大減少數(shù)據(jù)庫備份的時間,這也是是決定是否使用數(shù)據(jù)庫分區(qū)很重要的一點。DB2 通過為每個表空間分配獨立的進程或線程來實現(xiàn)備份和恢復操作的并行處理。在分區(qū)數(shù)據(jù)庫環(huán)境的備份中,每個分區(qū)的備份是獨立的,通過并行備份數(shù)據(jù)庫分區(qū)可以大大減少備份整個數(shù)據(jù)庫的時間。

日志

在高度活動的系統(tǒng)中,數(shù)據(jù)庫日志的性能可能會限制系統(tǒng)的整體吞吐量。在分區(qū)數(shù)據(jù)庫環(huán)境中,每個分區(qū)有自己一套日志。當大量插入、更新、刪除操作時,多個數(shù)據(jù)庫分區(qū)可以提高性能,因為日志是在每個數(shù)據(jù)庫分區(qū)上并行寫入,而且每個分區(qū)需要記錄的日志更少。

 

DB2隨數(shù)據(jù)量或處理器和分區(qū)的增加,可以提供近線性的擴展能力,可是,數(shù)據(jù)庫分區(qū)是否提供最多的益處依賴于處理的工作負荷、最大表的大小及其他因素。目前我們項目的數(shù)據(jù)倉庫也是使用數(shù)據(jù)庫分區(qū),因為數(shù)據(jù)量較大,并且業(yè)務對CPU的需求也比較大,但是機器較老,單機無法增加更多CPU,并且一個實例上要實現(xiàn)多個分區(qū),所以采用了另外一種SMP Cluster(多臺有多個CPU的機器上,建立的一個有多個partition的DB2 Instance,在其中的每臺機器上建立多個Partition)

 

3、DB2分區(qū)與Oracle的比較

Oracle分區(qū)

DB2分區(qū)

Oracle 10g語法

DB2 V9語法

區(qū)間分區(qū)(Range   Partitioning)

      

表分區(qū)(Table   Partitioning)

PARTITION BY RANGE

PARTITION BY RANGE

哈希分區(qū)(Hash   Partitioning)

數(shù)據(jù)庫分區(qū)(Database   Partitioning)

      

PARTITION BY HASH

DISTRIBUTE BY HASH

列表分區(qū)(List   Partitioning)

帶生成列表分區(qū)(Table   Partitioning With Generated Column)

PARTITION BY LIST

PARTITION BY RANGE

不支持

多維集群(Multidimensional   clustering)

ORGANIZE BY DIMENSION

 

 

以數(shù)據(jù)庫分區(qū)為例,以下是DB2的數(shù)據(jù)庫分區(qū)與Oracle哈希分區(qū)特性的比較:


DB2分區(qū)

Oracle分區(qū)

分區(qū)架構

Share-nothing

Share-disk

分區(qū)特性

每個CPU都有私有內(nèi)存區(qū)域和私有磁盤空間,并且兩個CPU不能訪問相同磁盤空間,CPU之間的通訊通過網(wǎng)絡連接。

每個CPU使用自己的私有內(nèi)存區(qū)域,通過內(nèi)部通訊機制直接訪問所有磁盤系統(tǒng)。

兩者區(qū)別

可伸縮性 —— 隨著數(shù)據(jù)庫的增長可物理性的增加計算資源(也就是數(shù)據(jù)庫分區(qū))

無法通過增加物理的partition來給數(shù)據(jù)庫擴容

語句示例

partition_tablename表選擇partition_ id字段作為分區(qū)鍵

hash_tablename表按照hash_part字段進行哈希分區(qū),每個分區(qū)以循環(huán)的方式放置在表空間tbsp1和tbsp2中。

CREATE TABLE partition_tablename
  (partition_id idNOT NULL,
   partition_idVARCHAR(20)NOT NULL)
      IN tbsp_parts
 DISTRIBUTEBY   HASH (partition_id);

CREATE TABLE hash_tablename
  (hash_part id,
       hash_idvarchar2(20))
       PARTITIONBY   HASH(hash_id)
      (partition p1 tablespace tbsp1,
  partition p2 tablespace   tbsp2);

 

4、總結

此次分享旨在簡單介紹DB2分區(qū)的概念,并與Oracle的分區(qū)做比較。分區(qū)數(shù)據(jù)庫為提高查詢工作負載和 DML操作的性能提供了便利。 如果數(shù)據(jù)量較小,性能提升并不會很明顯,所以分區(qū)數(shù)據(jù)庫一般用在數(shù)據(jù)量較大,查詢需求較頻繁的數(shù)據(jù)庫。其實使用Oracle好還是DB2好并沒有絕對的選擇。例如Oracle采用完全開放策略,可以使客戶選擇最適合的解決方案,對開發(fā)商全力支持;DB2則最適于海量數(shù)據(jù),并且在企業(yè)級的應用最為廣泛,可伸縮性及并行性強。就像廣東的老火湯很有味道,很滋補,中國人可能都喜歡喝,但是外國人覺得他們的羅宋湯那種很粘稠的才叫做湯,中國這種頂多叫Water!所以,自己需要的,才是最好的。


網(wǎng)頁標題:DB2分區(qū)數(shù)據(jù)庫淺析
新聞來源:http://weahome.cn/article/gsdijd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部