Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方

B-treeインデクスのキー長(変数KEYSZ)の計算方法を次に示します。

まず,次に示す図に従ってB-treeインデクスの種別を特定してください。

図5‒11 B-treeインデクスの種別を特定する方法

[図データ]

次に,特定したB-treeインデクスの種別ごとの計算式によって,KEYSZを求めてください。ただし,各インデクス構成列のキー長は,次に示す表を参照してください。

表5‒9 B-treeインデクスのキー長一覧

項番

分類

データ型

キー長(単位:バイト)

1

数データ

INTEGER

8

2

SMALLINT

4

3

DECIMAL(m,n)

1≦m≦4

2

4

5≦m≦8

4

5

9≦m≦16

8

6

17≦m≦38

16

7

DOUBLE PRECISION

8

8

文字データ

CHARACTER(n)

n

9

VARCHAR(n)

d

10

日時データ

DATE

4

11

TIME(p)

3+↑p÷2↑

12

TIMESTAMP(p)

7+↑p÷2↑

(凡例)

d:実際のデータ長

m,n:正の整数

p:0,3,6,9または12

〈この項の構成〉

(1) 単一列インデクスの場合

計算式(単一列インデクス)(単位:バイト)
KEYSZ= flg_size+key_size
変数の説明
  • flg_size

    インデクス構成列によって決まる,次に示すどれかの値

    ・インデクス構成列がVARCHAR列以外の場合:0

    ・インデクス構成列が定義長255バイト以下のVARCHAR列の場合:1

    ・インデクス構成列が定義長256バイト以上のVARCHAR列の場合:2

  • key_size

    インデクス構成列のキー長(単位:バイト)

(2) 固定長列だけの複数列インデクスの場合

計算式(固定長列だけの複数列インデクス)(単位:バイト)

[図データ]

変数の説明
  • idx_col_num

    インデクス構成列の数

  • flag_null

    次に示すどちらかの値

    ・インデクス構成列中にナル値を含まないキーの場合:0

    ・インデクス構成列中にナル値を含むキーの場合:1

  • key_size(i)

    i番目のインデクス構成列のキー長

(3) 可変長列を含む複数列インデクスの場合

計算式(可変長列を含む複数列インデクス)(単位:バイト)

[図データ]

変数の説明
  • idx_col_num

    インデクス構成列の数

  • flag_type

    次に示すどちらかの値

    ・B-treeインデクスを構成する列の長さが255バイト以下の場合:1

    ・B-treeインデクスを構成する列の長さが256バイト以上の場合:2

    複数列インデクスを構成する列の長さについては,マニュアル「HADB SQLリファレンス」の「定義系SQL」の「CREATE INDEX(インデクスの定義)」を参照してください。

  • key_size(i)

    i番目のインデクス構成列のキー長