付録A.6 集約テーブルを格納するユーザ用RDエリアの算出

集約テーブルを格納するために,次の格納領域を用意します。なお,インデックス設定はなしとします。

集約テーブルの列は,元の分析データベースから選択したキー項目とそのキー項目の表示用名称,選択した分析項目のSUM,及び件数列から構成されます。

[図データ]

列の属性については,キー項目と表示用名称は引き継がれますが,件数列の属性はINTEGERになります。また,SUM(分析項目)の属性は,次のようになります。

分析項目の属性SUM(分析項目)の属性
INTEGERINTEGER
SMALLINTINTEGER
FLOATFLOAT
SMALLFLTSMALLFLT
DECIMAL(p,s)DECIMAL(29,s)

また,集約テーブルの行数は,選択したキー項目とそのキー項目の表示用名称で元の分析データベースのデータをグルーピングした件数となります。

次に,表A-15と表A-16に示す集約テーブルの例を使用して,集約テーブルを格納するユーザ用RDエリアの算出例を示します。

表A-15 集約テーブルの例(属性)

キー項目SUM(分析項目)表示用名称件数列
CHAR(100)INTEGERCHAR(100)INTEGER

表A-16 集約テーブルの例(値)

項目
行の総数(件)300
各列のデータ長の合計(バイト)208
列のデータ長の平均値0
表に定義する列の総数(個)4
<この項の構成>
(1) 使用する計算式
(2) 算出例に使用する値
(3) 算出例
(4) create rdarea文の指定例

(1) 使用する計算式

マニュアル「スケーラブルデータベースサーバ HiRDB Version 5.0 システム導入・設計ガイド」,「スケーラブルデータベースサーバ HiRDB Version 6 システム導入・設計ガイド」又は「スケーラブルデータベースサーバ HiRDB Version 7 システム導入・設計ガイド」に記載されている次に示す計算式を使用します。

(2) 算出例に使用する値

表(テーブル)の格納ページ数の計算で使用する値とデータ格納領域(ユーザ用RDエリア)の総ページ数の計算で使用する値を次に示します。

表A-17 表(テーブル)の格納ページ数の計算で使用する値

変数内容代入先

a

表(テーブル)に格納する行の総数

表A-16の「行の総数(件)」の値式2
式3

b

データ格納領域(ユーザ用RDエリア)のページ長

4,096(バイト)式2
式3

c

create table文で指定する未使用領域の比率

30(%)式2

di

各列のデータ長

表A-16の「各列のデータ長の合計(バイト)」の値式2

ei

列のデータ長の平均値

なし式3

f

表(テーブル)に定義する列の総数

表A-16の「表に定義する列の総数(個)」の値式2

g

表(テーブル)を格納するデータ格納領域(ユーザ用RDエリア)のセグメントサイズ

10(ページ)式1

h

create table文で指定するセグメント内の空きページ比率

10(%)式1

n

列数

1式1

表A-18 データ格納領域(ユーザ用RDエリア)の総ページ数の計算で使用する値

変数内容代入先

a

データ格納領域(ユーザ用RDエリア)を構成するHiRDBファイル数

1(個)

式4

b

データ格納領域(ユーザ用RDエリア)のページ長

4,096(バイト)

式4

c

データ格納領域(ユーザ用RDエリア)に格納する表(テーブル)の総数

集約テーブルの総数:1(個)

式4

d

データ格納領域(ユーザ用RDエリア)に格納するインデックスの総数

0(個)

式4

e

表(テーブル)を格納するデータ格納領域(ユーザ用RDエリア)のセグメントサイズ

10(ページ)

式4

f

↓(b-20)/((↑e/32↑×8)+56)↓

式4

g

↑(250×b)/(256×f)↑×f

式4

Si

↑Ti/e↑
HiRDBファイルのセグメント数です。この値をcreate rdarea文のinitialに指定します。

式4

Ti

表(テーブル)の格納ページ数

式1~3で求めます

式4

この算出例では,ユーザ用RDエリアの容量は4,689,920バイトとなります。

算出例を次に示します。

(3) 算出例

(a) 表(テーブル)の格納ページ数の計算

表(テーブル)の格納ページ数の計算方法を,表A-15と表A-16に示した集約テーブルを例に説明します。

  1. 式2に列のデータ長を代入して計算

    P=↑1000/(MIN(255,↓(↓(4096×(100-30))/100↓-48)
    /(208+8+2×4)↓))↑
    =25(ページ)

  2. 式3の計算
    eiの値がないため,計算不要。
  3. 式1へ,式2と式3で求めた値を代入して,表(テーブル)の格納ページ数を計算

    表の格納ページ数(Ti)
    =↑((25+0)×10)/(10-↓(10×10)/100↓)↑=28(ページ)

(b) データ格納領域(ユーザ用RDエリア)の総ページ数の計算
  1. 式4のf,g,Siの計算

    f=↓(4096-20)/((↑10/32↑×8)+56)↓=63
    g=↑(250×4096)/(256×63)↑×63=64×63=4032
    Si=↑1090/10↑=109

  2. 式4:データ格納領域(ユーザ用RDエリア)の総ページ数の計算

    データ格納領域(ユーザ用RDエリア)の総ページ数
    =(↑109/63↑+↑109/4032↑)+(28×10)+0+6×(1+1)+2
    ×↑20480/4096↑
    =3+280+0+6×(1+1)+2×↑20480/4096↑
    =305(ページ)

(c) データ格納領域(ユーザ用RDエリア)の容量の計算
  1. 式5:データ格納領域(ユーザ用RDエリア)の容量の計算

    データ格納領域(ユーザ用RDエリア)の容量=4096×305
    =1,249,280(バイト)

(4) create rdarea文の指定例

create rdarea文の指定例を次に示します。

[図データ]