Hitachi

HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 10


2.3.2 RDエリア容量

Text Search Plug-inを使用する場合のRDエリア容量の見積もり方法について説明します。

見積もりの必要なRDエリア容量は,ユーザ用RDエリア,ユーザLOB用RDエリア,データディクショナリ用RDエリア,レジストリ用RDエリアおよびレジストリLOB用RDエリアの容量です。

〈この項の構成〉

(1) SGMLプラグインおよびn-gramインデクスプラグインの場合

(a) ユーザ用RDエリア容量

SGMLTEXT型列を定義した表を格納するユーザ用RDエリアの容量は,次の値で見積もってください。ユーザ用RDエリアの見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

設定個所

変数

設定値

各列のデータ長

di

26[バイト]

(b) ユーザLOB用RDエリア容量

HiRDBのユーザLOB用RDエリアの容量の見積もりでは,次に説明するSGMLTEXTデータ格納用RDエリアとn-gramインデクス情報格納用RDエリアの容量を計算します。

SGMLTEXTデータ格納用RDエリア

次の値を設定して,SGMLTEXTデータを格納するユーザLOB用RDエリアの容量を見積もってください。ユーザLOB用RDエリアの容量の見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

設定個所

変数

設定値

LOB列の行の総数

b

2 + 登録文書数

各BLOBデータのデータ長

Cj

次の説明を参照してください

C1のサイズ

C1 = 2,629,632[バイト]

C2のサイズ

C2 = 1,318,912[バイト]

Cjのサイズ

一般の場合

Cj = ↑(docsize×2.5)/8192↑×8192+8192(j > 2)[バイト]

DocumentBrokerを使用している場合

Cj = ↑(docsize×2.5)/8192↑×8192+8192+docbrodtdsize(j > 2)[バイト]

Preprocessing Library for Text Searchを使用してXML文書を登録する場合

Cj = ↑(docsize×1.5)/8192↑×8192+8192(j > 2)[バイト]

docsize:1文書当たりのサイズ[バイト]

docbrodtdsize:DocumentBrokerに定義したDTDサイズ[バイト]

n-gramインデクス情報格納用RDエリア

次の値を設定して,n-gramインデクス情報を格納するユーザLOB用RDエリアの容量を見積もってください。ユーザLOB用RDエリアの容量見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注意事項
  • 差分インデクスまたは分割遅延登録を使用する場合は,指定した差分インデクスサイズまたはインデクス分割遅延登録用領域サイズを加算したサイズとなります。

  • 1つのRDエリアの最大サイズは64GBです。64GBを超える場合は表分割してください。

  • インデクスのサイズは,登録テキスト(削除更新で発生した無効部分を含む)の3〜5倍となります。

  • インデクス容量の上限は設計値であり,性能を考慮し,上限以下で分割することを推奨します。

  • 1RDエリア当たりのインデクスで管理できる1つの文字および文字列を登録できる上限は約21億個です。例えば,半角数字を多く含むテキストを登録するシステムでは,表分割をしない場合,1つのインデクスには,すべての文書に含む0〜9のどれかで合計約21億文字(2GB)を超えることが想定されるときには,表分割が必要となります。

設定個所

変数

設定値

LOB列の行の総数

b

8

各BLOBデータのデータ長

Cj

次の説明を参照してください

C1のサイズ

C1 = max((↑(24×doccnt)/8192↑+↑(4×doccnt)/(512×8192)↑

+↑(4×doccnt)/(1024×8192)↑)×8192+8192, 128000+8192)

C2のサイズ
概念検索を使用する場合

C2 = 4875×8192+8192

概念検索を使用しない場合

C2 = 3750×8192+8192

C3のサイズ
通常インデクスの場合または英文検索用インデクス(ENGLISH)の場合

C3 = max(↑(doccnt×docsize×3)/8192↑×8192+8192,200×1024×1024)

インデクス作成ルール追加機能(INDEX_ALL)を使用した場合

C3 = max(↑(doccnt×docsize×7)/8192↑×8192+8192,200×1024×1024)

インデクス作成ルール追加機能(INDEX_MEDIUM)または英文検索用インデクス(ENGLISH_STANDARD)を使用した場合

C3 = max(↑(doccnt×docsize×5)/8192↑×8192+8192,200×1024×1024)

文字単位インデクス作成機能(INDEX_GRAM1)を使用した場合

C3 = max(↑(doccnt×docsize×2)/8192↑×8192+8192,200×1024×1024)

検索高速化インデクス(V2)機能(INDEX_V2)を使用した場合
  • 通常インデクスの場合

    C3 = max(↑(doccnt×docsize×4)/8192↑×8192+8192,250×1024×1024)

  • インデクス作成ルール追加機能(INDEX_ALL)を使用した場合

    C3 = max(↑(doccnt×docsize×9)/8192↑×8192+8192,250×1024×1024)

  • インデクス作成ルール追加機能(INDEX_MEDIUM)を使用した場合

    C3 = max(↑(doccnt×docsize×7)/8192↑×8192+8192,250×1024×1024)

  • 英文検索用インデクス(ENGLISH)を使用した場合

    C3 = max(↑(doccnt×docsize×5)/8192↑×8192+8192,250×1024×1024)

  • 英文検索用インデクス(ENGLISH_STANDARD)を使用した場合

    C3 = max(↑(doccnt×docsize×8)/8192↑×8192+8192,250×1024×1024)

C4のサイズ

C4 = 160×8192+8192

C5のサイズ

C5 = 160×8192+8192

C6のサイズ
CREATEMODE=0の即時登録用インデクスおよびCREATEMODE=1の初期分割登録用インデクスの場合

C6 = 0

CREATEMODE=2の分割遅延登録用インデクスの場合(DELAY_SIZE設定値のインデクス分割遅延登録用領域サイズ)

C6 = C1×2+1024×1024

ただし,C1中のdoccntは分割遅延登録文書数です。

CREATEMODE=3の分割遅延登録・更新系SQL同時実行用インデクスの場合(DELAY_SIZE設定値の遅延登録時に情報を退避する領域サイズ)

C6 = 16×delaydoccnt+12×8192

C7のサイズ
統合統計情報を反映していない場合

C7 = 0

統合統計情報を反映した場合(1回目)

C7 = ↑反映する統合統計情報ファイルサイズ(バイト)/8192↑×8192+8192

統合統計情報を反映した場合(2回目以降)

C7 = 1回目に反映したサイズ+↑(反映する統合統計情報ファイルサイズ(バイト)−1回目に反映したサイズ)/4188↑×4188

C8のサイズ
UCS4インデクスでない場合

C8 = 0

UCS4インデクスの場合(初期作成)

C8 = 50×1024×1024

UCS4インデクスの場合

次のサイズをAvailable Work Area Size(使用可能ワーク領域サイズ)※1に確保してください。

C8 = 200×1024×1024 + doccnt×1文書中のUCS4文字数※2×7

検索高速化インデクス(V2)機能(INDEX_V2)を使用した場合
  • UCS4インデクスの場合

    次のサイズをAvailable Work Area Size(使用可能ワーク領域サイズ)※1に確保してください。

    C8 = 350×1024×1024 + doccnt×1文書中のUCS4文字数※2×7

注※1

インデクス情報の取得ユティリティを使って取得したインデクス情報に表示されます。インデクス情報の取得ユティリティについての詳細は,「3.2.9 phnidxls(インデクス情報の取得ユティリティ)」を参照してください。また,HiRDBのデータベース構成変更ユティリティを使用すると,RDエリアが拡張されます。pdmod(データベース構成変更ユティリティ)については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

注※2

UCS4で表現できる文字の中で,UCS2を超える範囲。

0x000100000x7fffffff

doccnt:登録文書数

docsize:平均登録文書長[バイト]

delaydoccnt:分割遅延登録文書数

(c) データディクショナリ用RDエリアの容量

Text Search Plug-inで,SGMLTEXT型やNGRAMインデクス型を表に適用する場合は,次の値を設定してHiRDBのデータディクショナリ用RDエリアの容量を見積もってください。データディクショナリ用RDエリア容量の見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  • 表の格納ページ数の設定項目と設定値

    設定項目

    設定値

    ユーザ定義型の名称長の平均値

    8[バイト]

    プラグインオプション指定長の平均値

    72+DTD名称長+正規化パラメタ名称長

    [バイト]

    ユーザ定義型の総数

    1[個]

    1データ型当たりの属性数の平均値

    1[個]

    データ型識別子の長さの平均値

    8[バイト]

    ユーザ定義型で定義された属性数

    1[個]

    プラグインの総数

    2[個]

    プラグイン名称の長さの平均値

    8[バイト]

    抽象データ型/インデクス型名称の長さの平均値

    8[バイト]

    インデクス型の総数

    1[個]

    インデクス型識別子の長さの平均値

    4[バイト]

    抽象データ型名称の長さの平均値

    8[バイト]

    プラグインインデクスの総数

    1[個]

    インデクス型識別子の長さの平均値

    4[バイト]

    抽象データ型名称の長さの平均値

    8[バイト]

    抽象データ型で定義された属性の総数

    1[個]

    プラグインインデクス適用関数名称の長さの平均値

    10[バイト]

    1プラグインインデクス当たりの適用関数の数

    30[個]

    LOB列を定義した表の総数

    ユーザLOB列に加えてSGMLTEXT型列を定義した表の数

    1プラグイン当たりのパラメタ名称の長さの平均値

    30[バイト]

    プラグインライブラリパス名称の長さの平均値

    255[バイト]

    プラグインの注釈の長さの平均値

    255[バイト]

    1インデクス型当たりの適用関数の数

    30[個]

    サブタイプとして定義された抽象データ型の総数

    0[個]

    抽象データ型の総数

    SGMLTEXTは1個として加算

  • インデクスの格納ページ数の設定項目と設定値

    設定項目

    設定値

    作成するユーザ定義データ型の数

    1[個]

    ユーザ定義データ型名称の長さの平均値

    8[バイト]

    1ユーザ定義データ型当たりの属性数の平均値

    1[個]

    ユーザ定義データ型属性名称の長さの平均値

    30[バイト]

    プラグイン名称の長さの平均値

    8[バイト]

    作成するプラグイン数

    2[個]

    インデクス型名称の長さの平均値

    8[バイト]

    プラグイン関数の数の平均値

    30[個]

    複数ある場合は各プラグインの適用関数の数との平均

    プラグイン関数名称の長さの平均値

    20[バイト]

    1プラグイン関数当たりのパラメタ数の平均値

    6[個]

    1プラグイン関数当たりのパラメタ名称の長さの平均値

    8[バイト]

(d) レジストリ用RDエリア容量

Text Search Plug-inが使用するHiRDBのレジストリ用RDエリアの容量は,次の値で見積もってください。レジストリ用RDエリア容量の見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  • レジストリ管理表の格納ページ数

    設定個所

    変数

    設定値

    レジストリ管理表のコンテキスト数

    a

    3

    レジストリコンテキスト名長

    c

    16[バイト]

    アクセスパスワード長

    d

    12[バイト]

    レジストリ管理表のキー値数

    e

    レジストリ管理表に登録したキー名称の数

    レジストリキー名称長

    f

    DTD登録名称長+正規化パラメタ登録名称長[バイト]

    レジストリキー値長

    g

    DTD長+正規化パラメタ長[バイト]

  • レジストリ管理表のインデクス格納ページ数

    設定個所

    変数

    設定値

    レジストリコンテキスト名長

    a

    16[バイト]

    レジストリキー名称長

    f

    DTD登録名称長+正規化パラメタ登録名称長[バイト]

(e) レジストリLOB用RDエリア容量

Text Search Plug-inが使用するHiRDBのレジストリLOB用RDエリアの容量は,次の値で見積もってください。レジストリLOB用RDエリア容量の見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

設定個所

変数

設定値

32,000バイトを超えるレジストリキー値数

b

DTDと正規化パラメタの総数

32,000バイトを超えるレジストリキー値長

Cj

DTDと正規化パラメタの長さの総合計[バイト]

(2) FREEWORDプラグインおよびIXFREEWORDプラグインの場合

(a) ユーザ用RDエリア容量

FREEWORD型列を定義した表を格納するユーザ用RDエリアの容量は,次の値で見積もってください。ユーザ用RDエリアの見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

設定個所

変数

設定値

各列のデータ長

di

次の説明を参照してください

freewordsize ≦ rdareasize − 表データの合計(各列のデータ長の総和) − 100 の場合

di[バイト]= freewordsize+50

freewordsize > rdareasize − 表データの合計(各列のデータ長の総和) − 100 の場合

di[バイト]= 60

この場合,表の格納ページ数(ページ)に,次の値を加算してください。

↑freewordsize/rdareasize↑×freewordcnt

freewordsize:登録文字列データ長[バイト]

freewordcnt:登録文字列データ件数

rdareasize:ユーザ用RDエリアのページ長[バイト]

(b) ユーザLOB用RDエリア容量

HiRDBのユーザLOB用RDエリアの容量の見積もりでは,次に説明するIXFREEWORDインデクス情報格納用RDエリアの容量を計算します。

IXFREEWORDインデクス情報格納用RDエリア

次の値を設定して,IXFREEWORDインデクス情報を格納するユーザLOB用RDエリアの容量を見積もってください。

ユーザLOB用RDエリアの容量見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注意事項
  • 分割遅延登録を使用する場合は,指定したインデクス分割遅延登録用領域サイズを加算したサイズとなります。

  • 1つのRDエリアの最大サイズは64GBです。64GBを超える場合は表分割してください。

  • インデクスのサイズは,登録テキスト(削除更新で発生した無効部分を含む)の3〜5倍となります。

  • インデクス容量の上限は設計値であり,性能を考慮し,上限以下で分割することを推奨します。

  • 1RDエリア当たりのインデクスで管理できる1つの文字および文字列を登録できる上限は約21億個です。例えば,半角数字を多く含むテキストを登録するシステムでは,表分割をしない場合,1つのインデクスには,すべての文書に含む0〜9のどれかで合計約21億文字(2GB)を超えることが想定されるときには,表分割が必要となります。

設定個所

変数

設定値

LOB列の行の総数

b

7

各BLOBデータのデータ長

Cj

次の説明を参照してください

C1のサイズ

C1 = max((↑(24×freewordcnt)/8192↑

  +↑(4×freewordcnt)/(512×8192)↑

  +↑(4×freewordcnt)/(1024×8192)↑)×8192+8192, 128000

  +8192)

C2のサイズ

C2 = 3750×8192+8192

C3のサイズ
通常インデクスの場合または英文検索用インデクス(ENGLISH)の場合

C3 = max(↑(freewordcnt×freewordsize×3)/8192↑×8192+8192,200×1024×1024)

英文検索用インデクス(ENGLISH_STANDARD)を使用した場合

C3 = max(↑(freewordcnt×freewordsize×5)/8192↑×8192+8192,200×1024×1024)

検索高速化インデクス(V2)機能(INDEX_V2)を使用した場合
  • 通常インデクスの場合

    C3 = max(↑(doccnt×docsize×4)/8192↑×8192+8192,250×1024×1024)

  • インデクス作成ルール追加機能(INDEX_ALL)を使用した場合

    C3 = max(↑(doccnt×docsize×9)/8192↑×8192+8192,250×1024×1024)

  • インデクス作成ルール追加機能(INDEX_MEDIUM)を使用した場合

    C3 = max(↑(doccnt×docsize×7)/8192↑×8192+8192,250×1024×1024)

  • 英文検索用インデクス(ENGLISH)を使用した場合

    C3 = max(↑(doccnt×docsize×5)/8192↑×8192+8192,250×1024×1024)

  • 英文検索用インデクス(ENGLISH_STANDARD)を使用した場合

    C3 = max(↑(doccnt×docsize×8)/8192↑×8192+8192,250×1024×1024)

C4のサイズ

C4 = 160×8192+8192

C5のサイズ

C5 = 160×8192+8192

C6のサイズ
CREATEMODE=0の即時登録用インデクスおよびCREATEMODE=1の初期分割登録用インデクスの場合

C6 = 0

CREATEMODE=2の分割遅延登録用インデクスの場合(DELAY_SIZE設定値のインデクス分割遅延登録用領域サイズ)

C6 = C1×2+1024×1024

ただし,C1中のfreewordcntは分割遅延登録文書数です。

CREATEMODE=3の分割遅延登録・更新系SQL同時実行用インデクスの場合(DELAY_SIZE設定値の分割遅延登録時に情報を退避する領域サイズ)

C6 = 16×delayfreewordcnt+12×8192

delayfreewordcnt:分割遅延登録文書数

C7のサイズ
UCS4インデクスでない場合

C7 = 0

UCS4インデクスの場合(初期作成)

C7 = 50×1024×1024

UCS4インデクスの場合

次のサイズをAvailable Work Area Size(使用可能ワーク領域サイズ)※1に確保してください。

C7 = 200×1024×1024 + freewordcnt×1登録文字列中のUCS4文字数※2×5

検索高速化インデクス(V2)機能(INDEX_V2)を使用した場合
  • UCS4インデクスの場合

    次のサイズをAvailable Work Area Size(使用可能ワーク領域サイズ)※1に確保してください。

    C7 = 350×1024×1024 + doccnt×1文書中のUCS4文字数※2×7

注※1

phxidxls(インデクス情報取得ユティリティ)を使って取得したインデクス情報に表示されます。HiRDBのpdmodコマンドによるRDエリアの拡張を行うと拡張されます。

注※2

UCS4で表現できる文字の中で,UCS2を超える範囲。

0x000100000x7fffffff

英語文字列検索用インデクスの場合

freewordcnt:登録文字列データ件数

freewordsize:平均登録文字列データ長[バイト]

(c) データディクショナリ用のRDエリア容量

Text Search Plug-inで,FREEWORD型とIXFREEWORD型を表に適用する場合は,次の値を設定してHiRDBのデータディクショナリ用RDエリアの容量を見積もってください。データディクショナリ用RDエリア容量の見積もり式は,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  • 表の格納ページ数の設定項目と設定値

    設定項目

    設定値

    ユーザ定義型の名称長の平均値

    8[バイト]

    プラグインオプションの平均値

    80[バイト]

    抽象データ型名称の長さの平均値

    8[バイト]

    ユーザ定義型の総数

    1[個]

    1データ型当たりの属性数の平均値

    1[個]

    データ型識別子の長さの平均値

    8[バイト]

    ユーザ定義型で定義された属性数

    1[個]

    プラグインの総数

    2[個]

    プラグイン名称の長さの平均値

    8[バイト]

    抽象データ型/インデクス型名称の長さの平均値

    8[バイト]

    インデクス型の総数

    1[個]

    インデクス型識別子の長さの平均値

    4[バイト]

    抽象データ型名称の長さの平均値

    8[バイト]

    プラグインインデクスの総数

    1[個]

    インデクス型識別子の長さの平均値

    4[バイト]

    抽象データ型名称の長さの平均値

    8[バイト]

    抽象データ型で定義された属性の総数

    1[個]

    プラグインインデクス適用関数名称の長さの平均値

    10[バイト]

    1プラグインインデクス当たりの適用関数の数

    30[個]

    1プラグイン当たりのパラメタ名称の長さの平均値

    30[バイト]

    プラグインライブラリパス名称の長さの平均値

    255[バイト]

    プラグインの注釈の長さの平均値

    255[バイト]

    1インデクス型当たりの適用関数の数

    30[個]

    サブタイプとして定義された抽象データ型の総数

    0[個]

    抽象データ型の総数

    FREEWORDは1[個]として加算

  • インデクスの格納ページ数の設定項目と設定値

    設定項目

    設定値

    作成するユーザ定義データ型の数

    1[個]

    ユーザ定義データ型名称の長さの平均値

    8[バイト]

    1ユーザ定義データ型当たりの属性数の平均値

    1[個]

    ユーザ定義データ型属性名称の長さの平均値

    30[バイト]

    プラグイン名称の長さの平均値

    8[バイト]

    作成するプラグイン数

    2[個]

    インデクス型名称の長さの平均値

    8[バイト]

    プラグイン関数の数の平均値

    30[個]複数ある場合は各プラグインの適用関数の数との平均

    プラグイン関数名の長さの平均値

    20[バイト]

    1プラグイン関数当たりのパラメタ数の平均値

    6[個]

    1プラグイン関数当たりのパラメタ名の長さの平均値

    8[バイト]

(d) レジストリ用RDエリア容量

Text Search Plug-inでFREEWORD型とIXFREEWORDインデクス型を使用する場合HiRDBのレジストリ用RDエリアは使用しません。

(e) レジストリLOB用RDエリア容量

Text Search Plug-inでFREEWORD型とIXFREEWORDインデクス型を使用する場合HiRDBのレジストリ用RDエリアは使用しません。