スケーラブルデータベースサーバ HiRDB Version 8 解説(Windows(R)用)
一つの表を複数のユーザ用RDエリア又はユーザLOB用RDエリアに分割して格納することを表の横分割といいます。また,横分割した表を横分割表といいます。表を横分割すると,ユーザ用RDエリア又はユーザLOB用RDエリア単位に,表へのデータの格納,表の再編成,バックアップの取得などの運用ができます。
例えば,UAPの種類(業務の種類)ごとに表を横分割してRDエリアに格納すると,バックアップの取得時にはバックアップ対象RDエリアにアクセスするUAPだけを停止すればよく,運用の操作性が向上します。
また,HiRDB/パラレルサーバの場合には,表にアクセスする処理を複数のバックエンドサーバ下のユーザ用RDエリア又はユーザLOB用RDエリアにわたって並列化できるため,表に対するアクセスの高速化と負荷の分散ができます。
表の横分割を次の図に示します。
図3-8 表の横分割
表を横分割する方法には,次に示す2種類があります。
表を構成する列のうち,特定の列が持つ値の範囲を条件として表を横分割することをキーレンジ分割といいます。表を横分割するときの条件にした特定の列を分割キーといいます。キーレンジ分割は,表のデータがどのRDエリアに格納されているかどうかを意識したい場合に使用します。横分割の指定方法には,次に示す2種類があります。
比較演算子を使用して,それぞれのRDエリアへの格納条件を指定します。一つのRDエリアに対して,格納条件で指定された一つの範囲だけを指定できます。キーレンジ分割(格納条件指定)の例を次の図に示します。
図3-9 キーレンジ分割(格納条件の指定)の例
CREATE TABLE ZAIKO (SCODE CHAR(4) NOT NULL,SNAME NCHAR(8), COL NCHAR(1),TANKA INTEGER,ZSURYO INTEGER )IN ((RDAREA01)SCODE<='353M',(RDAREA02));
定数を使用して,それぞれのRDエリアに格納するデータの,境界となる値を昇順に指定します。一つのRDエリアに対して,境界値で区切られた複数の範囲を指定できます。キーレンジ分割(境界値指定)の例を次の図に示します。
図3-10 キーレンジ分割(境界値指定)の例
CREATE TABLE ZAIKO (SCODE CHAR(4) NOT NULL,SNAME NCHAR(8), COL NCHAR(1),TANKA INTEGER,ZSURYO INTEGER )PARTITIONED BY SCODE IN ((RDAREA01)'302S',(RDAREA02)'591S',(RDAREA01));
表を構成する列が持つ値をハッシュ関数を使用して,均等にRDエリアに格納し,表を横分割することをハッシュ分割といいます。表を横分割するときに指定した特定の列を分割キーといいます。ハッシュ分割は,キーの範囲を意識しないで,表のデータをRDエリアに均等に格納したい場合に使用します。ハッシュ分割の種類を次の表に示します。
表3-4 ハッシュ分割の種類
ハッシュ分割の種類 | 説明 |
---|---|
フレキシブルハッシュ分割 | 表を分割してRDエリアに格納する場合,どのRDエリアに分割されるか定まりません。このため,検索処理では,該当する表があるすべてのバックエンドサーバが対象になります。 |
FIXハッシュ分割 | 表がどのRDエリアに分割されたかをHiRDBが認識します。このため,検索処理では,該当するデータがあると予測されるバックエンドサーバだけが対象になります。 |
ハッシュ分割の例を次の図に示します。
図3-11 ハッシュ分割の例
CREATE TABLE ZAIKO (SCODE CHAR(4) NOT NULL,SNAME NCHAR(8), COL NCHAR(1),TANKA INTEGER,ZSURYO INTEGER ) [FIX]※ HASH HASH6 BY SCODE IN (RDAREA01,RDAREA02);
横分割表を格納するRDエリアは異なるディスク上に配置してください。同じディスク上に配置すると,ディスクに対するアクセスの競合が発生して性能が向上しません。
また,HiRDB/パラレルサーバの場合,サーバ間横分割及びサーバ内横分割という概念があります。複数のバックエンドサーバにわたって表が横分割される形態をサーバ間横分割といいます。それに対して,一つのバックエンドサーバ内で表が横分割される形態をサーバ内横分割といいます。HiRDB/シングルサーバの場合は,常にサーバ内横分割になります。
HiRDB/シングルサーバ及びHiRDB/パラレルサーバの表の横分割の例を次の図に示します。
図3-12 表の横分割の例(HiRDB/シングルサーバの場合)
図3-13 表の横分割の例(HiRDB/パラレルサーバの場合)
表を横分割する場合には,定義系SQLのCREATE TABLEに,次に示す要素を指定します。
表をどのように横分割すれば処理性能が向上するかなど,表の横分割の設計方法については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
ハッシュ分割表のデータ量が増加したためRDエリアを追加すると(表の横分割数を増やすと),既存のRDエリアと新規追加したRDエリアとの間でデータ量の偏りが生じます。ハッシュ分割表のリバランス機能を使用すると,表の横分割数を増やすときにデータ量の偏りを修正できます。ハッシュ分割表のリバランス機能を次の図に示します。ハッシュ分割表のリバランス機能は,FIXハッシュ及びフレキシブルハッシュのどちらにも適用できます。
ハッシュ分割表のリバランス機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
図3-14 ハッシュ分割表のリバランス機能
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.