9.1.1 表の格納ページ数の計算方法
暗号化機能を使用すると,データ長の部分が変更になります。暗号化列のデータ長一覧を次の表に示します。また,列のデータ長の平均値を求める場合は,表「可変長文字列型のデータ長一覧」にあるデータ型の列についてだけ求めてください。
表9‒1 暗号化列のデータ長一覧
分類
|
データ型および条件
|
データ長(単位:バイト)
|
数値データ
|
INTEGER
|
16
|
SMALLINT
|
16
|
LARGE DECIMAL(m,n)
|
↑(↑(m+1)÷2↑+1)÷16↑×16
|
FLOATまたはDOUBLE PRECISION
|
16
|
SMALLFLTまたはREAL
|
16
|
文字データ
|
CHARACTER(n)
|
↑(n+1)÷16↑×16
|
VARCHAR(n)
|
d≦255
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
d≧256
|
6
|
VARCHAR(n)
ノースプリットオプション指定あり
|
n≦255
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
n≧256
|
分岐する場合
|
6
|
分岐しない場合
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
各国文字データ
|
NCHAR(n)またはNATIONAL CHARACTER(n)
|
↑(2n+1)÷16↑×16
|
NVARCHAR(n)
|
d≦127
|
繰返し列の要素
|
−
|
上記以外
|
↑(2d+1)÷16↑×16+3
|
d≧128
|
6
|
NVARCHAR(n)
ノースプリットオプション指定あり
|
n≦127
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(2d+1)÷16↑×16+3
|
n≧128
|
分岐する場合
|
6
|
分岐しない場合
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(2d+1)÷16↑×16+3
|
混在文字データ
|
MCHAR(n)
|
↑(n+1)÷16↑×16
|
MVARCHAR(n)
|
d≦255
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
d≧256
|
6
|
MVARCHAR(n)
ノースプリットオプション指定あり
|
n≦255
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
n≧256
|
分岐する場合
|
6
|
分岐しない場合
|
抽象データ型の属性
|
−
|
繰返し列の要素
|
−
|
上記以外
|
↑(d+1)÷16↑×16+3
|
日付データ
|
DATE
|
16
|
時刻データ
|
TIME
|
16
|
日間隔データ
|
INTERVAL YEAR TO DAY
|
16
|
時間隔データ
|
INTERVAL HOUR TO SECOND
|
16
|
時刻印データ
|
TIMESTAMP(n)
|
16
|
長大データ
|
BLOB
|
−
|
バイナリデータ
|
BINARY(n)
|
n≦255
|
↑(d+1)÷16↑×16+5
|
n≧256
|
分岐する場合※
|
15
|
分岐しない場合
|
↑(d+1)÷16↑×16+9
|
BINARY(n)
圧縮指定あり
|
n≧256
|
分岐する場合※
|
15
|
分岐しない場合
|
↑(d+1)÷16↑×16+17
|
- (凡例)
-
m,n:正の整数
d:実際のデータ長(文字数)
−:暗号化列に指定できません。
- 注※
-
マニュアル「HiRDB Version 9 システム導入・設計ガイド」にある「表の格納ページ数の計算方法」の「計算式中で使用する変数」に記載されているSPN2を求めるとき,Liを次の値で計算してください。
- ・定義長32000以下の場合
-
Li = ↑(d+1)÷16↑×16+8+α
- ・定義長32001以上の場合かつ圧縮指定がない場合
-
Li = d+↑d÷γ↑×(9+α)+16
- ・定義長32001以上の場合かつ圧縮指定がある場合
-
Li = ↓d÷γ↓×(↑(γ+9)÷16↑×16+8)+mod(d,γ)+32
α:圧縮指定がある場合は8,ない場合は0
γ:圧縮指定がある場合は↓(圧縮分割サイズ)÷16↓×16−1,ない場合は31999
表9‒2 可変長文字列型のデータ長一覧
データ型
|
データ長
|
VARCHAR(n)
|
d≧256
|
↑(d+1)÷16↑×16+2
|
ノースプリットオプション指定あり
|
0
|
NVARCHAR(n)
|
d≧128
|
↑(2d+1)÷16↑×16+2
|
ノースプリットオプション指定あり
|
0
|
MVARCHAR(n)
|
d≧256
|
↑(d+1)÷16↑×16+2
|
ノースプリットオプション指定あり
|
0
|
- (凡例)
-
n:正の整数
d:実際のデータ長(文字数)
ページの先頭へ