6.3.6 adbimportコマンド実行時のメモリ所要量の求め方
adbimportコマンドを実行する場合,HADBサーバは次に示すメモリを使用します。各メモリの所要量を求めてください。
- ■共有メモリ
-
-
プロセス共通メモリ(PROC_IMPORTSZ)
-
リアルスレッド固有メモリ(RTHD_IMPORTSZ)
-
- ■プロセスメモリ
-
-
ヒープメモリ(HEAP_IMPORTSZ)
-
それぞれのメモリ所要量の計算式を次に示します。
- 〈この項の構成〉
(1) プロセス共通メモリの所要量の求め方(adbimportコマンド実行時)
adbimportコマンド実行時のプロセス共通メモリ(PROC_IMPORTSZ)の所要量は,次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IMPORTSZ= Σ(PROC_IMPT+PROC_IDX※1+PROC_IDXBUILD※1 +PROC_RNGIDX※2+PROC_INFILE※3+PROC_DBUPDINF+PROC_RTHDUPDINF +PROC_OBJDELENT※4+PROC_IDXEST※6)※5
- 変数の説明
-
-
PROC_IMPT
データインポート処理で使用するプロセス共通メモリ
「(a) 変数PROC_IMPTの求め方」を参照して求めてください。
-
PROC_IDX
B-treeインデクスを作成するときに使用するプロセス共通メモリ
「(b) 変数PROC_IDXの求め方」を参照して求めてください。
-
PROC_IDXBUILD
B-treeインデクスを作成するときに使用するプロセス共通メモリ
「(c) 変数PROC_IDXBUILDの求め方」を参照して求めてください。
-
PROC_RNGIDX
レンジインデクスを作成するときに使用するプロセス共通メモリ
「(d) 変数PROC_RNGIDXの求め方」を参照して求めてください。
-
PROC_INFILE
入力データファイル数が1,024個を超える場合に使用するプロセス共通メモリ
「(e) 変数PROC_INFILEの求め方」を参照して求めてください。
-
PROC_DBUPDINF
DBエリア,表,インデクス,およびチャンク更新情報の格納で必要なプロセス共通メモリ
「(f) 変数PROC_DBUPDINFの求め方」を参照して求めてください。
-
PROC_RTHDUPDINF
処理リアルスレッド更新情報
「(g) 変数PROC_RTHDUPDINFの求め方」を参照して求めてください。
-
PROC_OBJDELENT
S3オブジェクトまたはBLOBの削除情報
「(h) 変数PROC_OBJDELENTの求め方」を参照して求めてください。
-
PROC_IDXEST
B-treeインデクスの容量見積もり情報
「(i) 変数PROC_IDXESTの求め方」を参照して求めてください。
-
- 注※1
-
B-treeインデクスを定義した表にデータインポートする場合に加算します。
- 注※2
-
レンジインデクスを定義した表にデータインポートする場合に加算します。
- 注※3
-
入力データパスファイル名に指定した入力データファイル数が1,024個を超える場合に加算します。
- 注※4
-
クラウドストレージ機能を使用し,-dオプションを指定してadbimportコマンドを実行する場合に加算します。
- 注※5
-
複数のadbimportコマンドを同時に実行する場合は,各adbimportコマンドが使用するメモリ所要量を求めてください。そして,それぞれで求めたメモリ所要量を合計してください。
- 注※6
-
次のどちらかの条件に該当する場合に加算します。
-
インポートオプションadb_import_dvbix_rthd_useにVARIABLEを指定してadbimportコマンドを実行する場合
-
サーバ定義のadb_cmd_dvbix_rthd_useオペランドにVARIABLEを指定し,インポートオプションadb_import_dvbix_rthd_useの指定を省略してadbimportコマンドを実行する場合
-
(a) 変数PROC_IMPTの求め方
変数PROC_IMPTは,データインポート処理で使用するプロセス共通メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
- 注※1
-
監査証跡機能が有効な場合に加算してください。
- 注※2
-
カラムストア表にデータインポートする場合に加算してください。
変数の説明
- DIC:インポート対象表の定義情報を取得するためのメモリ
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- 注※1
-
コスト情報を収集したことがある表の場合に加算してください。
コスト情報を収集したことがある表かどうかを確認する方法については,「付録C.9 システム表の検索」の「(1) コスト情報を収集した全実表の表名と収集日時を調べる場合」を参照してください。
- 注※2
-
処理対象表がアーカイブマルチチャンク表の場合に加算してください。
- col_num
-
インポート対象表の列数
- max_rowsz
-
最大行長(単位:バイト)
最大行長については,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」の行長ROWSZの計算式を基に求めてください。
- idx_num
-
インポート対象表に定義されたインデクス数
- IOA:表に格納するデータイメージを作成するためのメモリ
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
IOA= ↑(max_rowsz+436+448×col_num+124×idx_num+4×dba_num) ÷1,024↑×load_rthd
-
max_rowsz
最大行長(単位:バイト)
最大行長については,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」の行長ROWSZの計算式を基に求めてください。
-
col_num
インポート対象表の列数
-
idx_num
インポート対象表に定義されたインデクス数
-
dba_num
インポート対象表のデータ用DBエリアのDBエリアファイル数
-
load_rthd
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
-
- LOD:データの格納処理で必要となるメモリ
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
LOD= ↑( ((read_size×read_buff_num+decomp_buff_size※1+1)×1,024×load_rthd) +((5,200+4,096,000※2+input_edit_area)×load_rthd) +(511×input_file_num) )÷1,024↑
- 注※1
-
入力データファイルに圧縮ファイル(GZIP形式)を指定したときに加算してください。
- 注※2
-
列構成情報ファイルを指定したときに加算してください。
- read_size
-
インポートオプションadb_import_read_sizeの指定値
- read_buff_num
-
3を代入してください。
- decomp_buff_size
-
インポートオプションadb_import_decompress_buff_sizeの指定値
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- input_file_num
-
1,024を代入してください。
- input_edit_area
-
入力データの編集領域長
次に示す計算式から求めてください。
計算式
- input_recsize
-
入力レコード長
-
固定長データ形式の場合
インポートオプションadb_import_input_record_sizeの指定値を代入してください。
-
CSV形式の場合
次に示す計算式から求めてください。
計算式
-
- フィールドデータ数
-
列構成情報ファイルに指定した各列のフィールドデータ番号,または指定を省略した際の仮定値を求めてください。その中で最大の値を代入してください。
- Σ(DATASIZE)
-
処理対象表にある各列のデータ型のデータを文字形式で表した場合の最大長の合計
各データ型のデータを文字形式で表したときの最大長については,次に示す表から求めてください。
表6‒11 各データ型のデータを文字形式で表した場合の最大長の一覧 項番
分類
データ型
文字形式のデータ最大長
1
数データ
INTEGER
23
2
BIGINT
3
SMALLINT
13
4
DECIMAL(m,n)
m+5
5
NUMERIC(m,n)
6
DOUBLE PRECISION
511
7
FLOAT
8
文字データ
CHAR(n)
n×2+2
9
VARCHAR(n)
n×2+2
10
日時データ
DATE
12
11
TIME(p)
8+p+3
12
TIMESTAMP(p)
19+p+3
13
バイナリデータ
BINARY(n)
n×8+2
14
VARBINARY(n)
n×8+2
15
配列データ
ARRAY
要素データ型の文字形式のデータ最大長×最大要素数
- (凡例)
-
m,n,p:マニュアルHADB SQLリファレンスのデータ型の種類を参照してください。
- IMPORTBUF_CTL:データインポートおよびインデクス作成用バッファを制御するために使用するメモリ
-
次に示す値を代入してください。
- 値(単位:キロバイト)
-
IMPORTBUF_CTL= ↑(248+BUFBLK)÷1,024↑×load_rthd
-
BUFBLK
「6.3.4 通常運用時のメモリ所要量の求め方」の「(1) プロセス共通メモリの所要量の求め方(通常運用時)」の「(f) 変数PROC_UPDSZの求め方」の変数BUFBLKを参照してください。
-
load_rthd
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
-
- STS:ステータス情報を退避するためのメモリ
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- idx_num
-
インポート対象表に定義されたインデクス数
- b_tree_idx_num
-
インポート対象表に定義されたB-treeインデクスの数
- range_idx_num
-
インポート対象表に定義されたレンジインデクスの数
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- text_idx_num
-
インポート対象表に定義されたテキストインデクスの数
- PAGEALLOC:データインポート用ページ割り当て制御情報
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PAGEALLOC= import_rthd×310
-
import_rthd
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
-
- PROC_AUDINFSZ
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(t) 変数AUDINFの求め方」にある変数PROC_AUDINFSZを参照してください。
- PROC_IMPT_COLUMN:カラムストア表へのデータインポートで使用するメモリ
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IMPT_COLUMN= ↑((16,128+8×col_num)×rthd_num +576×(infile_num+workfile_num))÷1,024↑
- col_num
-
インポート対象表の列数
- rthd_num
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- infile_num
-
入力データファイルの数
- workfile_num
-
作業用一時ファイルの格納先ディレクトリの数
(b) 変数PROC_IDXの求め方
変数PROC_IDXは,インデクスを作成する場合に使用するプロセス共通メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
変数の説明
- idxf_buff_size
-
1,024を代入してください。
- KEYSZ
-
B-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
また,処理対象表に複数のB-treeインデクスが定義されている場合は,定義されたB-treeインデクスの中で最大のキー長を使用してください。
- idx_num
-
処理対象表に定義されたB-treeインデクスの数
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- cmd_d_opt
-
adbimportコマンドのオプションの指定有無,およびインポート対象表の状態によって,変数cmd_d_optの値は異なります。次に示す表に従って,変数cmd_d_optの値を求めてください。
項番
adbimportコマンドのオプションの指定有無,およびインポート対象表の状態
cmd_d_optの値
1
-
adbimportコマンドに-dオプションを指定し,-bオプションを指定しないで実行するとき
-
行を格納するセグメントが割り当てられていない状態のインポート対象表に対して,adbimportコマンドに-dオプションと-bオプションを指定しないで実行するとき
-
マルチチャンク表に対して,adbimportコマンドに-bオプションを指定し,-dオプションを指定しないで実行するとき
1
2
行を格納するセグメントが割り当てられている状態のインポート対象表に対して,adbimportコマンドに-dオプションと-bオプションを指定しないで実行するとき
3
-
- rd_buff_size
-
インポートオプションadb_import_dividx_rd_buff_sizeの指定値
- ld_buff_size
-
インポートオプションadb_import_dividx_wt_buff_sizeの指定値
- CTRL
-
-
インデクスのインデクス構成列が固定長の場合
10バイトを代入してください。
-
インデクスのインデクス構成列に可変長を含む場合
12バイトを代入してください。
-
- text_idx_num
-
処理対象表に定義されたテキストインデクスの数
- dividx_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
(c) 変数PROC_IDXBUILDの求め方
変数PROC_IDXBUILDは,B-treeインデクスを作成する場合に使用するプロセス共通メモリの所要量を求めるときに使用します。
PROC_IDXBUILDの値は,adbimportコマンドの-dオプションと-bオプションの指定有無,およびインポート対象表の状態によって,次に示すどちらかになります。
- PROC_IDXBUILDの値(単位:キロバイト)
-
PROC_IDXBUILD= PROC_IDXCREATE,またはPROC_IDXCREATE+PROC_IDXMAINT
- ■PROC_IDXBUILDの値がPROC_IDXCREATEになる場合
-
次に示すどれかに該当するときは,PROC_IDXCREATEになります。
-
adbimportコマンドに-dオプションを指定し,-bオプションを指定しないで実行するとき
-
行を格納するセグメントが割り当てられていない状態のインポート対象表に対して,adbimportコマンドに-dオプションと-bオプションを指定しないで実行するとき
-
マルチチャンク表に対して,adbimportコマンドに-bオプションを指定し,-dオプションを指定しないで実行するとき
-
- ■PROC_IDXBUILDの値がPROC_IDXCREATE+PROC_IDXMAINTになる場合
-
次に該当するときは,PROC_IDXCREATE+PROC_IDXMAINTになります。
-
行を格納するセグメントが割り当てられている状態のインポート対象表に対して,adbimportコマンドに-dオプションと-bオプションを指定しないで実行するとき
-
PROC_IDXCREATE,およびPROC_IDXMAINTは次に示す計算式から求めてください。
変数の説明
- PROC_IDXCREATE:次に示す計算式から求めてください。
-
計算式(単位:キロバイト)
- idx_num
-
インポート対象表に定義されたB-treeインデクスの数
- PROC_IDXCREATE_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IDXCREATE_MEM(k)= ↑(456+256×idx_col_num+(24+144×↑idx_lv÷16↑) ×(dividx_rthd+1)+(KEYSZ+(idx_col_num+1)×2+12) ×2+page_size×2+268)÷1,024↑
- idx_col_num
-
B-treeインデクスのインデクス構成列の数
- idx_lv:B-treeインデクスの段数
-
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」の計算式1(PIDX(k)の求め方)の漸化式を計算して,PIDX(n)=1となったときのnの値を代入してください。
ただし,PIDX(1)=1の場合は,B-treeインデクスの段数は2としてください。
- dividx_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- KEYSZ:B-treeインデクスのキー長(単位:バイト)
-
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
- page_size
-
B-treeインデクスが定義されているデータ用DBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
- PROC_IDXMAINT:次に示す計算式から求めてください。
-
計算式(単位:キロバイト)
- idx_num
-
インポート対象表に定義されたB-treeインデクスの数
- PROC_IDXMAINT_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IDXMAINT_MEM(k)= ↑(16+(8+KEYSZ+idx_col_num+1)×(dividx_rthd−1) +528+144×idx_col_num +↑(KEYSZ+(idx_col_num+1)×2+12)÷8↑×8 +(176+48×(idx_lv−1)+32×(idx_lv+1) +page_size×2 +↑(KEYSZ+(idx_col_num+1)×2+3,068)÷8↑×8 +↑(KEYSZ+(idx_col_num+1)×2+4)÷8↑×16 +↑(KEYSZ+(idx_col_num+1)×2+12)÷8↑×8) ×dividx_rthd)÷1,024↑
- KEYSZ:B-treeインデクスのキー長(単位:バイト)
-
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
- idx_col_num
-
B-treeインデクスのインデクス構成列の数
- dividx_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
- idx_lv:B-treeインデクスの段数
-
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」の計算式1(PIDX(k)の求め方)の漸化式を計算して,PIDX(n)=1となったときのnの値を代入してください。
ただし,PIDX(1)=1の場合は,B-treeインデクスの段数は2としてください。
- page_size
-
B-treeインデクスが定義されているデータ用DBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
(d) 変数PROC_RNGIDXの求め方
変数PROC_RNGIDXは,レンジインデクスを作成する場合に使用するプロセス共通メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_RNGIDX= ↑64×rngidx_num÷1,024↑
- 変数の説明
-
rngidx_num:インポート対象表に定義されたレンジインデクスの数
(e) 変数PROC_INFILEの求め方
変数PROC_INFILEは,入力データパスファイル名に指定した入力データファイル数が1,024個を超える場合に加算する必要があります。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_INFILE= ↑((16+511)×(INFMAX−1,024))÷1,024↑
- 変数の説明
-
INFMAX:入力データパスファイル名に指定した入力データファイル数
(f) 変数PROC_DBUPDINFの求め方
変数PROC_DBUPDINFは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
変数の説明
- DBUPDINF_ENT_NUM
-
DBエリア,表,インデクス,およびチャンク更新情報のエントリ数
次に示す計算式から求めてください。なお,マルチノード機能を使用するかどうかで,計算式が異なります。
マルチノード機能を使用しない場合の計算式(単位:個数)
マルチノード機能を使用する場合の計算式(単位:個数)
- idx_num
-
処理対象表に定義しているB-treeインデクス数
- rngidx_num
-
処理対象表に定義しているレンジインデクス数
- txtidx_num
-
処理対象表に定義しているテキストインデクス数
(g) 変数PROC_RTHDUPDINFの求め方
変数PROC_RTHDUPDINFは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- rthd_num
-
処理リアルスレッド数
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
(h) 変数PROC_OBJDELENTの求め方
変数PROC_OBJDELENTは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_OBJDELENT=↑((80+32,768)×128×dbarea_num)÷1,024↑
- 変数の説明
-
dbarea_num:adbimportコマンドの実行対象表,およびその表に定義するインデクスを格納するDBエリアの数
(i) 変数PROC_IDXESTの求め方
変数PROC_IDXESTは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IDXEST=↑{4,120+8×RTHNUM+(8×idx_num+Σ(ESTINF)+4,096)×load_rthd}÷1,024↑
変数の説明
- RTHNUM:総リアルスレッド数
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(a) 変数SCIの求め方」の変数RTHNUMを参照してください。
- idx_num
-
処理対象表に定義するB-treeインデクスの数
- Σ(ESTINF)
-
処理対象表に定義するB-treeインデクスごとにESTINFを次に示す計算式から求めて,求めた値を合計してください。
計算式(単位:バイト)
ESTINF=56+8×MIN(65,535 ,ESTENT_NUM)+48×ESTENT_NUM
- ESTENT_NUM
-
次に示す計算式から求めてください。
ESTENT_NUM= MAX{256 , ↓MAX{1 ,↓(↓(page_size×(100-pctfree))÷100↓-80)÷(KEYSZDB+22)↓} ×↓2,097,152÷page_size↓÷load_rthd↓×2 }
- page_size
-
B-treeインデクスを格納するデータ用DBエリアのページサイズ(単位:バイト)
- pctfree
-
CREATE INDEX文のPCTFREEオペランドに指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。
- KEYSZDB
-
データベース格納キー長(単位:バイト)
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の変数KEYSZDBを参照してください。ただし,可変長のデータは,常にキー長を定義長として求めてください。
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
(2) リアルスレッド固有メモリの所要量の求め方(adbimportコマンド実行時)
adbimportコマンド実行時のリアルスレッド固有メモリ(RTHD_IMPORTSZ)の所要量は,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
- 変数の説明
-
-
IMPORTBUF
データインポート処理時およびインデクス作成時に使用するバッファ
「(a) 変数IMPORTBUFの求め方」を参照して求めてください。
-
SORTIOBUF
ソート処理I/Oバッファ
「(b) 変数SORTIOBUFの求め方」を参照して求めてください。
-
SORTBUF
インデクス作成用ソートバッファ
「(c) 変数SORTBUFの求め方」を参照して求めてください。
-
RTHD_DATALOAD
データインポート処理時に使用するバッファ
「(d) 変数RTHD_DATALOADの求め方」を参照して求めてください。
-
RTHD_IDXREC
B-treeインデクス作成時に使用するバッファ
「(e) 変数RTHD_IDXRECの求め方」を参照して求めてください。
-
RTHD_IDXBUILD
B-treeインデクス作成時に使用するバッファ
「(f) 変数RTHD_IDXBUILDの求め方」を参照して求めてください。
-
RTHD_RNGIDX
レンジインデクス作成時に使用するバッファ
「(g) 変数RTHD_RNGIDXの求め方」を参照して求めてください。
-
RTHD_TXTIDX
テキストインデクス作成時に使用するバッファ
「(h) 変数RTHD_TXTIDXの求め方」を参照して求めてください。
-
- 注※1
-
B-treeインデクスを定義した表にデータインポートする場合に加算します。
- 注※2
-
レンジインデクスを定義した表にデータインポートする場合に加算します。
- 注※3
-
テキストインデクスを定義した表にデータインポートする場合に加算します。
(a) 変数IMPORTBUFの求め方
変数IMPORTBUFは,データインポート処理時,およびインデクスの作成時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
IMPORTBUF=↑(IMP_SQBUF※1+IMP_COBUF※2)÷1,024↑
- 注※1
-
クラウドストレージ機能を使用しない場合に加算してください。
- 注※2
-
クラウドストレージ機能を使用する場合に加算してください。
変数の説明
- IMP_SQBUF:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_SQBUF= IMP_SQBLK+IMP_SQIO+IMP_SQPGE+IMP_SQHS
- IMP_SQBLK:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_SQBLK= imp_blknum×(136+↑IMP_BLKSZ÷imp_pagesize÷64↑×40)
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_BLKSZ:次に示す計算式から求めてください。
-
IMP_BLKSZ= 4,096×1,024
- imp_pagesize:
-
次のDBエリアのページサイズのうち,最小の値(単位:バイト)
-
処理対象表が格納されているDBエリア
-
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリア
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
-
- IMP_SQIO:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_SQIO= 568×imp_blknum
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_SQPGE:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_SQPGE= (176+imp_pagesize+BUFLOG)×(IMP_BLKSZ÷imp_pagesize) ×imp_blknum
- imp_pagesize:
-
次のDBエリアのページサイズのうち,最小の値(単位:バイト)
-
処理対象表が格納されているDBエリア
-
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリア
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
-
- BUFLOG:
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(d) 変数BUFGLOBALの求め方」の変数BUFLOGを参照してください。
- IMP_BLKSZ:次に示す計算式から求めてください。
-
IMP_BLKSZ= 4,096×1,024
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_SQHS:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_SQHS= 48×imp_blknum
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_COBUF:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_COBUF=IMP_COBLK+IMP_COIO+IMP_COPGE+IMP_COHS
- IMP_COBLK:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_COBLK=imp_blknum×72
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_COIO:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_COIO=136×imp_blknum
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_COPGE:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_COPGE =((176+BUFLOG)×SEGSIZE+IMP_COBLKSZ)×imp_blknum
- BUFLOG:
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(d) 変数BUFGLOBALの求め方」の変数BUFLOGを参照してください。
- SEGSIZE:
-
次のDBエリアのセグメントサイズのうち,最大の値(単位:ページ数)
-
処理対象表が格納されているDBエリア
-
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリア
次に示す計算式で求めてください。
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
-
- IMP_COBLKSZ:次に示す計算式から求めてください。
-
IMP_COBLKSZ=32×1,024×1,024
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
- IMP_COHS:次に示す計算式から求めてください。
-
計算式(単位:バイト)
IMP_COHS=40×imp_blknum
- imp_blknum:
-
インポートオプションadb_import_buff_blk_numの指定値
(b) 変数SORTIOBUFの求め方
変数SORTIOBUFは,ソート処理時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
SORTIOBUF= sort_io_buff_size
変数の説明
- sort_io_buff_size
-
2,048を代入してください。
(c) 変数SORTBUFの求め方
変数SORTBUFは,ソート処理時のインデクス作成で使用するリアルスレッド固有メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
SORTBUF= 48+sort_buff_size×1,024
変数の説明
- sort_buff_size
-
インポートオプションadb_import_sort_buff_sizeの指定値※
- 注※
-
ソート処理では,作業用ワークファイルが作成されます。このファイルの容量を最小にする変数sort_buff_sizeの計算式を次に示します。変数sort_buff_sizeは,次に示す計算式を満たすようにしてください。ただし,メモリに余裕がない場合,またはほとんどのデータがインデクスキー順に並んでいる場合は,必要以上に大きな値を指定しないでください。
計算式
変数の説明
- REC_SIZE:次に示す計算式から求めてください。
-
計算式
REC_SIZE= (KEYSZ+SYS1)+SYS2
- KEYSZ:B-treeインデクスのキー長(単位:バイト)
-
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
また,処理対象表に複数のB-treeインデクスが定義されている場合は,定義されたB-treeインデクスの中で最大のキー長を使用してください。
- SYS1:次に示す値を仮定してください。
-
-
インポート対象表に定義されたインデクスのインデクス構成列が固定長の場合:10
-
インポート対象表に定義されたインデクスのインデクス構成列に可変長を含む場合:12
-
- SYS2:次に示す値を仮定してください。
-
-
インポート対象表に定義されたインデクスが可変長の複数列インデクスの場合:(インデクス構成列数×4)
-
そのほかのインデクスの場合:0
-
- BLK:次に示す計算式から求めてください。
-
計算式
BLK= REC_SIZE+(KEYSZ+8)+56
- row_num:
-
adbimportコマンドで表に格納する行数
- KEY_INF:次に示す計算式から求めてください。
-
計算式
KEY_INF= REC_SIZE+(KEYSZ+8)+28
- COL_INFO:次に示す計算式から求めてください。
-
計算式
COL_INFO= 2,112+(MULTI_KEY_INFO×32)+(KEYSZ+8)
- MULTI_KEY_INFO:次に示す値を仮定してください。
-
-
インポート対象表に定義されたB-treeインデクスが可変長の複数列インデクスの場合:(インデクス構成列数×2)+2
-
そのほかの場合:5
-
(d) 変数RTHD_DATALOADの求め方
変数RTHD_DATALOADは,データインポート処理時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
なお,インポート対象表がローストア表の場合と,カラムストア表の場合で計算式が異なります。
- ■ローストア表の場合
-
- 計算式(単位:キロバイト)
-
- 注※1
-
インポート対象表にレンジインデクスが定義されている場合に加算してください。
- 注※2
-
インポート対象表が非FIX表の場合に加算してください。
- 注※3
-
アーカイブマルチチャンク表に対して,-dオプションを指定してadbimportコマンドを実行する場合に加算してください。
- 変数の説明
-
- col_num
-
インポート対象表の列数(単位:個)
- var_col_num
-
インポート対象表にあるVARCHAR型,およびVARBINARY型の列数(単位:個)
- ■カラムストア表の場合
-
- 計算式(単位:キロバイト)
-
- 注※
-
インポート対象表にレンジインデクスが定義されている場合に加算してください。
- 変数の説明
-
- page_size
-
インポート対象表を格納するDBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」を参照してください。
- col_num
-
インポート対象表の列数(単位:個)
- SEGSIZE
-
DBエリアファイルを定義したDBエリアのセグメントサイズ
次に示す計算式から求めてください。クラウドストレージ機能を使用する場合は,1,024になります。
計算式(単位:ページ数)
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
- IMP_COLUMN
-
カラムストア表へのデータインポート用作業領域
次に示す計算式から求めてください。
計算式(単位:キロバイト)
IMP_COLUMN= 1,024×col_num +↑((376+16×col_num)×col_num+1,824+input_recsize+8×col_num +MAX(input_recsize , 2,097,152)+IMP_ERRDATA※1+IMP_ARRAY※2) ÷1,024↑
注※1
インポートオプションadb_import_errdata_file_nameを指定し,かつCSV形式のデータをインポートする場合に加算してください。
注※2
配列型の列を定義している表にデータをインポートする場合に加算してください。
- col_num
-
インポート対象表の列数(単位:個)
- input_recsize
-
入力レコード長
「(1) プロセス共通メモリの所要量の求め方(adbimportコマンド実行時)」の「(a) 変数PROC_IMPTの求め方」の変数LODを参照してください。
- IMP_ERRDATA
-
エラーレコード出力用バッファ
次に示す計算式から求めてください。
計算式(単位:バイト)
IMP_ERRDATA=input_recsize×1.2
- input_recsize
-
入力レコード長
「(1) プロセス共通メモリの所要量の求め方(adbimportコマンド実行時)」の「(a) 変数PROC_IMPTの求め方」の変数LODを参照してください。
- IMP_ARRAY
-
配列型の列にデータをインポートする際のデータインポート用作業領域
次に示す計算式から求めてください。
計算式(単位:バイト)
IMP_ARRAY=56×arr_col_num+160×col_num
- arr_col_num
-
インポート対象表に定義されている配列型の列数(単位:個)
- col_num
-
インポート対象表の列数(単位:個)
- RTHD_DATACOMPRESS
-
データ圧縮用の作業領域
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- col_num_in_table
-
インポート対象表の構成列数(単位:個)
- col_compress_work_size(i)
-
各列を圧縮するのに必要な作業領域(単位:バイト)
CREATE TABLE文でインポート対象表を定義する際に,各列に指定した列データの圧縮方式によって,代入する値が異なります。次の表に示す列データの圧縮方式に対応する値を代入してください。列データの圧縮方式の指定については,マニュアルHADB SQLリファレンスの定義系SQLのCREATE TABLE(表の定義)を参照してください。
表6‒12 各列を圧縮するのに必要な作業領域(変数col_compress_work_sizeに代入する値) 項番
列データの圧縮方式
各列を圧縮するのに必要な作業領域(変数col_compress_work_sizeに代入する値)(単位:バイト)
1
NONE
65,552
2
RUNLENGTH
65,552
3
DICTIONARY
23,270,960
4
DELTA
65,552
5
DELTA_RUNLENGTH
65,552
6
AUTO
23,270,960
- arr_col_num
-
インポート対象表に定義されている配列型の列数(単位:個)
- page_size
-
インポート対象表を格納するデータ用DBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」を参照してください。
- data_len(j)
-
j番目の配列型の列のデータ長(単位:バイト)
配列型の列のデータ長については,「6.3.4 通常運用時のメモリ所要量の求め方」の「(2) リアルスレッド固有メモリの所要量の求め方(通常運用時)」の「(c) 変数RTHD_EXESQLSZの求め方」にある「表6‒9 各データ型のデータ長の一覧」の「配列データ」を参照して求めてください。
- n(j)
-
j番目の配列型の列の最大要素数(単位:個)
(e) 変数RTHD_IDXRECの求め方
変数RTHD_IDXRECは,B-treeインデクス作成時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
RTHD_IDXREC= ↑(386+328×(idx_num−1)+32×max_idx_col_num +(64+buf_size×1,024)×2×idx_num)÷1,024↑
- 変数の説明
-
-
idx_num
インポート対象表に定義されたB-treeインデクスの数
-
max_idx_col_num
インポート対象表に定義されたB-treeインデクスのインデクス構成列数の最大値
-
buf_size
1,024を代入してください。
-
(f) 変数RTHD_IDXBUILDの求め方
変数RTHD_IDXBUILDは,B-treeインデクス作成時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。変数RTHD_IDXBUILDは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
- 変数の説明
-
- idx_num
-
インポート対象表に定義されたB-treeインデクスの数
- RTHD_IDXBUILD_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
RTHD_IDXBUILD_MEM(k)= ↑(61,474+↑MAX(255,KEYSZ)÷2↑×2+3,070 +↑KEYSZ+CTRL÷8↑×8+MAX(255,KEYSZ) +14+↓8+page_size×95÷100↓×2)÷1,024↑
- page_size
-
B-treeインデクスが定義されているデータ用DBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
- KEYSZ
-
B-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
- CTRL
-
-
インデクス構成列のキー長がすべて固定長の場合
10バイトを代入してください。
-
インデクス構成列のキー長に可変長を含む場合
12バイトを代入してください。
-
(g) 変数RTHD_RNGIDXの求め方
変数RTHD_RNGIDXは,レンジインデクス作成時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
RTHD_RNGIDX= ↑(16+128×rngidx_num)×load_rthd÷1,024↑
変数の説明
- rngidx_num
-
インポート対象表に定義されたレンジインデクスの数
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
(h) 変数RTHD_TXTIDXの求め方
変数RTHD_TXTIDXは,テキストインデクス作成時に使用するリアルスレッド固有メモリの所要量を求めるときに使用します。
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- idx_num
-
処理対象表に定義されたテキストインデクスの数
- RTHD_TXTIDXBUILD_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- buff_blk_size
-
4,096を代入してください。
- buff_blk_num
-
インポートオプションadb_import_buff_blk_numの指定値
- idx_div_num
-
k番目のテキストインデクスのインデクス構成列定義長
- txt_sort_buff_size
-
インポートオプションadb_import_txt_buff_sizeの指定値
(3) ヒープメモリの所要量の求め方(adbimportコマンド実行時)
adbimportコマンド実行時のヒープメモリ(HEAP_IMPORTSZ)の所要量は,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
- 注※
-
複数のadbimportコマンドを同時に実行する場合は,各adbimportコマンドが使用するメモリ所要量を求めてください。そして,それぞれで求めたメモリ所要量を合計してください。
変数の説明
- HEAP_ZLIB
-
「(a) 変数HEAP_ZLIBの求め方」を参照してください。
- HEAP_SRTHMEM
-
「(b) 変数HEAP_SRTHMEMの求め方」を参照してください。
(a) 変数HEAP_ZLIBの求め方
変数HEAP_ZLIBは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
変数の説明
- load_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1
(b) 変数HEAP_SRTHMEMの求め方
変数HEAP_SRTHMEMは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
変数の説明
- sort_rthd
-
次に示す計算式から求めてください。
インポートオプションadb_import_rthd_numの指定値-1