2.3.2 RDエリア容量

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

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

<この項の構成>
(1) SGMLプラグインおよびn-gramインデクスプラグインの場合
(2) FREEWORDプラグインおよびIXFREEWORDプラグインの場合

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

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

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

設定個所変数設定値
各列のデータ長di26[バイト]
(b) ユーザLOB用RDエリア容量

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

SGMLTEXTデータ格納用RDエリア
次の値を設定して,SGMLTEXTデータを格納するユーザLOB用RDエリアの容量を見積もってください。ユーザLOB用RDエリアの容量の見積もり式は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
設定個所変数設定値
LOB列の行の総数b2 + 登録文書数
各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 Version 9 システム導入・設計ガイド」を参照してください。
注意事項
  • 差分インデクスまたは分割遅延登録を使用する場合は,指定した差分インデクスサイズまたはインデクス分割遅延登録用領域サイズを加算したサイズとなります。
  • 1つのRDエリアの最大サイズは64GBです。64GBを超える場合は表分割してください。
  • インデクスのサイズは,登録テキスト(削除更新で発生した無効部分を含む)の3~5倍となります。
  • インデクス容量の上限は設計値であり,性能を考慮し,上限以下で分割することを推奨します。
  • 1RDエリア当たりのインデクスで管理できる1つの文字および文字列を登録できる上限は約21億個です。例えば,半角数字を多く含むテキストを登録するシステムでは,表分割をしない場合,1つのインデクスには,すべての文書に含む0~9のどれかで合計約21億文字(2GB)を超えることが想定されるときには,表分割が必要となります。
 
設定個所変数設定値
LOB列の行の総数b8
各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 Version 9 コマンドリファレンス」を参照してください。
注※2
UCS4で表現できる文字の中で,UCS2を超える範囲。
0x00010000~0x7fffffff

doccnt:登録文書数

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

delaydoccnt:分割遅延登録文書数

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

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

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

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

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

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

設定個所変数設定値
32,000バイトを超えるレジストリキー値数bDTDと正規化パラメタの総数
32,000バイトを超えるレジストリキー値長CjDTDと正規化パラメタの長さの総合計[バイト]

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

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

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

設定個所変数設定値
各列のデータ長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 Version 9 システム導入・設計ガイド」を参照してください。
注意事項
  • 分割遅延登録を使用する場合は,指定したインデクス分割遅延登録用領域サイズを加算したサイズとなります。
  • 1つのRDエリアの最大サイズは64GBです。64GBを超える場合は表分割してください。
  • インデクスのサイズは,登録テキスト(削除更新で発生した無効部分を含む)の3~5倍となります。
  • インデクス容量の上限は設計値であり,性能を考慮し,上限以下で分割することを推奨します。
  • 1RDエリア当たりのインデクスで管理できる1つの文字および文字列を登録できる上限は約21億個です。例えば,半角数字を多く含むテキストを登録するシステムでは,表分割をしない場合,1つのインデクスには,すべての文書に含む0~9のどれかで合計約21億文字(2GB)を超えることが想定されるときには,表分割が必要となります。
 
設定個所変数設定値
LOB列の行の総数b7
各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を超える範囲。
0x00010000~0x7fffffff
英語文字列検索用インデクスの場合
freewordcnt:登録文字列データ件数
freewordsize:平均登録文字列データ長[バイト]
(c) データディクショナリ用のRDエリア容量

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

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

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

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

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