集約テーブルを格納するために,次の格納領域を用意します。なお,インデックス設定はなしとします。
集約テーブルの列は,元の分析データベースから選択したキー項目とそのキー項目の表示用名称,選択した分析項目のSUM,及び件数列から構成されます。
列の属性については,キー項目と表示用名称は引き継がれますが,件数列の属性はINTEGERになります。また,SUM(分析項目)の属性は,次のようになります。
分析項目の属性 | SUM(分析項目)の属性 |
---|---|
INTEGER | INTEGER |
SMALLINT | INTEGER |
FLOAT | FLOAT |
SMALLFLT | SMALLFLT |
DECIMAL(p,s) | DECIMAL(29,s) |
また,集約テーブルの行数は,選択したキー項目とそのキー項目の表示用名称で元の分析データベースのデータをグルーピングした件数となります。
次に,表A-15と表A-16に示す集約テーブルの例を使用して,集約テーブルを格納するユーザ用RDエリアの算出例を示します。
表A-15 集約テーブルの例(属性)
キー項目 | SUM(分析項目) | 表示用名称 | 件数列 |
---|---|---|---|
CHAR(100) | INTEGER | CHAR(100) | INTEGER |
表A-16 集約テーブルの例(値)
項目 | 値 |
---|---|
行の総数(件) | 300 |
各列のデータ長の合計(バイト) | 208 |
列のデータ長の平均値 | 0 |
表に定義する列の総数(個) | 4 |
マニュアル「スケーラブルデータベースサーバ HiRDB Version 5.0 システム導入・設計ガイド」,「スケーラブルデータベースサーバ HiRDB Version 6 システム導入・設計ガイド」又は「スケーラブルデータベースサーバ HiRDB Version 7 システム導入・設計ガイド」に記載されている次に示す計算式を使用します。
表(テーブル)の格納ページ数の計算で使用する値とデータ格納領域(ユーザ用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↑ | - | 式4 |
Ti | 表(テーブル)の格納ページ数 | 式1~3で求めます | 式4 |
この算出例では,ユーザ用RDエリアの容量は4,689,920バイトとなります。
算出例を次に示します。
表(テーブル)の格納ページ数の計算方法を,表A-15と表A-16に示した集約テーブルを例に説明します。
P=↑1000/(MIN(255,↓(↓(4096×(100-30))/100↓-48)
/(208+8+2×4)↓))↑
=25(ページ)
表の格納ページ数(Ti)
=↑((25+0)×10)/(10-↓(10×10)/100↓)↑=28(ページ)
f=↓(4096-20)/((↑10/32↑×8)+56)↓=63
g=↑(250×4096)/(256×63)↑×63=64×63=4032
Si=↑1090/10↑=109
データ格納領域(ユーザ用RDエリア)の総ページ数
=(↑109/63↑+↑109/4032↑)+(28×10)+0+6×(1+1)+2
×↑20480/4096↑
=3+280+0+6×(1+1)+2×↑20480/4096↑
=305(ページ)
データ格納領域(ユーザ用RDエリア)の容量=4096×305
=1,249,280(バイト)
create rdarea文の指定例を次に示します。