9.2.26 一時表に関するオペランド
- ◆ pd_max_temporary_object_no = ある一時点で使用する一時表と一時インデクスの最大数
-
〜<符号なし整数>((0〜131072))《600》
-
0904互換モードの場合:《0》
サーバごとに,ある一時点で使用する一時表と一時インデクスの最大数を指定します。
- 《指定値の目安》
-
このオペランドの指定値は,次の計算式で求めてください。HiRDB/パラレルサーバの場合は,バックエンドサーバごとに求めてください。
(1トランザクションで使用するトランザクション固有一時表 +その一時表の一時インデクスの総数)の最大数×アクティビティ数※ +(SQLセッションで使用するSQLセッション固有一時表 +その一時表の一時インデクスの総数)×接続ユーザ数
注※
アクティビティ数:
((pd_max_usersの指定値+3)×2+1)+α
α:pd_max_usersの指定値が60以下の場合は5,pd_max_usersの指定値が61以上の場合は0
HiRDB/パラレルサーバの場合,このオペランドの値はバックエンドサーバごとに適用されます。そのため,指定値が最も多いバックエンドサーバを目安にしてこのオペランドを指定してください。
- 《ほかのオペランドとの関連》
-
このオペランドは,pd_max_tmp_table_rdarea_noオペランドと関連があります。
- 《各見積もり式への影響》
-
pd_max_temporary_object_noオペランドの指定値を変更すると,次の見積もり式に影響があります。
マニュアル「HiRDB システム導入・設計ガイド」:
-
「シングルサーバが使用する共用メモリの計算式」の「計算式8」
-
「バックエンドサーバが使用する共用メモリの計算式」の「計算式8」
-
-
- ◆ pd_tmp_table_initialize_timing = STARTING|ACCESS
-
一時表用RDエリアは,通常,HiRDB開始時に初期化されます。このオペランドは,一時表用RDエリアの初期化をHiRDB開始時ではない時に変更する場合に指定します。一時表用RDエリアの初期化については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。
- STARTING:
-
HiRDB開始時に,前回稼働中に使用したすべての一時表用RDエリアを初期化します。
- ACCESS:
-
一時表に最初にINSERT文が実行された時に,格納先候補となった一時表用RDエリアを初期化します。格納先候補となる一時表用RDエリアについては,マニュアル「HiRDB システム導入・設計ガイド」の「格納先RDエリアの決定規則」を参照してください。
- 《注意事項》
-
ACCESSを指定すると,HiRDBを開始してから一時表に最初にINSERT文が実行された時に一時表用RDエリアを初期化するオーバヘッドが発生します。そのため,次の要因でトランザクションがキャンセルされるおそれがあります。
-
排他待ち限界経過時間を超過した
-
HiRDBクライアントの最大待ち時間を超過した
一時表用RDエリアの初期化によるオーバヘッド量(ディレクトリページの初期化ページ数)は次の計算式で求められます。
↑1000÷(50×(ページサイズ÷2048))↑ +Σ↑各HiRDBファイルのセグメント数 ÷(16000×(ページサイズ÷2048))↑ (単位:ページ)
《ほかのオペランドとの関連》のオペランドの指定値は,上記のオーバヘッドの時間を考慮して見積もってください。
-
- 《ほかのオペランドとの関連》
-
このオペランドは次に示すオペランドと関連があります。
-
pd_lck_wait_timeout
-
クライアント環境定義のPDCWAITTIME
-