自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解人大金倉數(shù)據(jù)庫的垂直分區(qū)V3.0

數(shù)據(jù)庫 其他數(shù)據(jù)庫
今天我們將談到的是國產(chǎn)數(shù)據(jù)庫—人大金倉數(shù)據(jù)庫的垂直分區(qū)。希望對大家有所幫助,簡化數(shù)據(jù)庫設(shè)計人員的工作,并為應(yīng)用程序提供透明的SQL訪問。

1、概述

對一個大問題進(jìn)行劃分處理是計算機(jī)領(lǐng)域常見的手段。在數(shù)據(jù)庫應(yīng)用中,對于一個大表,既可以選擇進(jìn)行水平分區(qū),也可以選擇進(jìn)行垂直分區(qū)。水平分區(qū)在主流的數(shù)據(jù)庫產(chǎn)品中都得到了實現(xiàn),垂直分區(qū)一般要靠數(shù)據(jù)庫設(shè)計人員自行實現(xiàn)(將一個表劃分為多個表)。金倉數(shù)據(jù)庫V6在數(shù)據(jù)庫內(nèi)核中實現(xiàn)了表的垂直分區(qū),它可以簡化數(shù)據(jù)庫設(shè)計人員的工作,并為應(yīng)用程序提供透明的SQL訪問。

使用垂直分區(qū)主要利用了應(yīng)用對表中字段訪問的如下特性:

(1)字段訪問頻率的不均勻性:即某些字段訪問特別頻繁,其他字段則訪問的較少??梢詤⒖?0/20原則。

(2)應(yīng)用對字段訪問的聚集性:即應(yīng)用中的查詢傾向于一起訪問某些字段,如a、b、c三列總是一起訪問;d、e兩列總是一起訪問??梢詤⒖季植啃栽?。

(3)字段訪問順序的依賴性:即應(yīng)用中的查詢按照某個特定的順序訪問字段,例如訪問d、e字段前總是先訪問a、b、c字段。

在應(yīng)用對表的訪問滿足以上特性之一時,使用垂直分區(qū)可以使訪問/修改這些列的查詢不再需要訪問/修改其他無關(guān)列,從而減少物理I/O。

本文給出了一種根據(jù)“應(yīng)用的訪問模式”確定如何對表進(jìn)行垂直分區(qū)(即確定分區(qū)表中字段)的思路,并且以一個應(yīng)用為例。

2、金倉數(shù)據(jù)庫V6中垂直分區(qū)實現(xiàn)方法

金倉數(shù)據(jù)庫V6支持基于主碼連接的垂直分區(qū),語法如下:

  1. CREATE TABLE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] [SchemaName.]TableName  
  2. (  
  3. { ColumnName <DataType> [IDENTITY [(Seed, Increment)]]  
  4.    [ DEFAULT { NULL | USER | <Expression> } ] [ <ColumnConstraint> ]  
  5.    | [ <TableConstraint> ]  
  6.  } [, ...n ]  
  7. ) [ <VerticalPartitions> ]  
  8. [TABLESPACE TablespaceName]  
  9.    
  10. <VerticalPartitions> ::= PARTITION BY COLUMN 
  11.               ( [PartitionName]  
  12.                ({ ColumnName [, ...n ])  
  13.                [TABLESPACE TablespaceName] ) [, ...n ] 

垂直分區(qū)是按列進(jìn)行分區(qū),即把一條記錄分開多個地方保存,每個分區(qū)的行數(shù)相同,列順序與PARTITION子句中的順序。

包括存放沒指定的列的分區(qū),分區(qū)數(shù)目必須大于等于二,各分區(qū)表間允許字段重復(fù),但不能完全重復(fù)。

垂直分區(qū)基表必須有主碼字段,如果分區(qū)沒有指定主碼字段,將在分區(qū)中加入基表中的主碼字段。

分區(qū)表不能有基表字段之外的字段,表中有但分區(qū)表沒指定的字段默認(rèn)放入一個新的分區(qū)表。

主碼字段和重復(fù)字段不能指定為IDENTITY。

如果沒有指定分區(qū)名,系統(tǒng)會自動建立分區(qū)名,分區(qū)的命名規(guī)則為基表名_VP_[1…N]。分區(qū)和基表在同一命名空間。

如果沒有指定表空間,缺省存放到分區(qū)基表所在的表空間中。

不支持建立跨分區(qū)的表級約束。

例子: 

  1. CREATE TABLE base (  
  2. col1 INT, col2 INT, col3 INT, col4 INT, col5 CHAR(100),  
  3. PRIMARY KEY(col1, col2)  
  4. )  
  5. PARTITION BY COLUMN (P1(col1, col2, col3, col4), P2(col5)); 

將會創(chuàng)建名為BASE的基表和P1、P2兩個分區(qū)表。P1和P2的結(jié)構(gòu)如圖所示,兩個分區(qū)都包含元組控制信息(元組頭)、各分區(qū)的分區(qū)列和作為連接索引的主碼列col1和col2。

 

3、分區(qū)方案的選擇

在決定如何分區(qū)選擇時首先要了解應(yīng)用的場景,然后考慮分區(qū)對I/O的影響:

了解應(yīng)用場景(可以在應(yīng)用開發(fā)過程中進(jìn)行)

獲得應(yīng)用中包含的全部查詢;

記錄查詢的順序;

標(biāo)記查詢執(zhí)行的次數(shù)(或者是百分比);

記錄查詢平均訪問的元組數(shù);

看是否有滿足使用垂直分區(qū)的場景

將查詢按照涉及的表分組(涉及多個表的出現(xiàn)在多個組中);

對每一組查詢,做一個表格,表格的列是該組查詢涉及的表的列和列長度,表格的行是查詢;

對于該組每一個查詢,標(biāo)記該查詢涉及的列;

結(jié)合查詢的頻率和訪問元組數(shù)粗略查看是否有滿足使用垂直分區(qū)的場景;

計算I/O量獲得分區(qū)方法

在滿足場景的組中選擇幾個分區(qū)方案,包括分區(qū)的類型和列的組合。

根據(jù)分區(qū)類型計算各分區(qū)的元組I/O量。

注意盡可能考慮訪問模式,即查詢執(zhí)行順序帶來的物理I/O差別??赡軒淼牟顒e有:

1)去掉重復(fù)計算IO。例如一個涉及分區(qū)P1的查詢后會接著執(zhí)行一條更新該分區(qū)的語句,則更新語句的讀就不會是物理讀。

2)考慮命中率問題。不同分區(qū)的頁面命中率需要根據(jù)分區(qū)的訪問頻率進(jìn)行估計。

計算不分區(qū)方案和每個分區(qū)方案的I/O量,I/O量為查詢數(shù)*元組數(shù)*該分區(qū)元組I/O量。

比較選擇I/O量最小的方案。

驗證分區(qū)帶來的I/O減少

可能會有實際情況與計算不符的情況發(fā)生,因為計算中的I/O量是邏輯I/O量而不是準(zhǔn)確的物理I/O,實際測試每種方案,收集統(tǒng)計信息(每張表的讀寫信息、頁面的命中率),根據(jù)實際值調(diào)整方案。

4、實例:TPC-C的垂直分區(qū)選擇

TPC-C是一個典型的OLTP類型的負(fù)載。TPC-C測試中共有9張表,包括c_warehouse、c_customer、c_district、c_stock、c_order、c_order_line、c_item、c_history和c_new_order;另外,共有5種事務(wù)場景:new order、payment、order-status、delivery和stock-level,其中order-status和stock-level是純查詢事務(wù),其它是以更新為主的事務(wù)。

分析5種事務(wù)包含的查詢,除去c_warehouse、c_distric表等小表,以及更新較多的大表,如c_order和c_order_line,我們可以知道在c_stock表和c_customer表上進(jìn)行垂直劃分可以帶來較大效率的提升。我們可以根據(jù)實際待測試的環(huán)境,按照前面描述的原則進(jìn)行垂直劃分方案的設(shè)計、測試和驗證。

【責(zé)任編輯:彭凡 TEL:(010)68476606】
責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2010-07-29 14:59:56

Kingbase人大金倉

2012-04-17 16:38:01

KingbaseDBC

2011-01-18 16:56:33

人大金倉

2015-05-05 16:44:32

數(shù)據(jù)庫

2010-08-02 15:37:18

KingBaseES人大金倉

2023-01-11 08:25:40

國產(chǎn)數(shù)據(jù)庫KESOracle

2012-10-22 15:55:34

人大金倉

2011-03-18 17:22:51

人大金倉數(shù)據(jù)庫

2010-12-22 12:46:27

人大金倉

2011-11-02 16:50:26

人大金倉

2012-04-24 16:51:29

人大金倉

2011-10-28 16:56:44

人大金倉

2011-05-24 17:28:39

人大金倉
點贊
收藏

51CTO技術(shù)棧公眾號