Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


16.5.5 UAP統計レポート機能

UAP実行時のUAP統計レポートをUAP統計レポートファイルに取得します。

次に示すSDBデータベースを操作するためのAPIまたはDMLを実行した場合,UAP統計レポートを参照すると,アクセスパス情報および位置指示子情報を特定できます。

UAP統計レポートの詳細については,マニュアル「HiRDB UAP開発ガイド」の「UAP統計レポート機能」を参照してください。

〈この項の構成〉

(1) UAP統計レポートの取得方法

UAP統計レポートは,クライアント環境定義のPDCLTPATH,PDSQLTRACE,およびPDUAPREPLVL(pまたはa指定)を設定すると取得できます。

(2) UAP統計レポートの見方

UAP統計レポートの見方については,マニュアル「HiRDB UAP開発ガイド」の「UAP統計レポートの見方」を参照してください。なお,「SQL文」は,「SDBデータベースを操作するAPI」または「DML」に読み替えてください。

SDBデータベースを操作するAPIまたはDMLの実行時に出力される情報の出力例とその説明を次に示します。

サポートしていない情報が設定されていた場合は,'(UNK)'が出力されます。

(a) アクセスパス情報

[出力例]

[図データ]

[説明]

出力内容

説明

EXEC ID

各IDの情報が表示されます。

それぞれ出力文字数は最大10バイトです。

各IDは,トランザクション開始時に1から開始し,要求ごとに1ずつ増え,最大値4,294,967,295まで増えます。最大値の次の値は0になります。

  • SDBハンドラの要求ごとに割り振られたブロックID

    出力対象外となっている個別開始・個別終了もカウントされます。

  • SDBデータベース内でフロントエンドサーバからバックエンドサーバへ,SDBデータベースを操作するAPIまたはDMLを送信した回数を示すCALL ID

  • SDBハンドラの要求の中のSDBデータベースを操作するAPIまたはDMLごとに割り振られたDML ID

  • SDBデータベース内で実行した,SDBデータベースを操作するAPIまたはDMLごとに割り振られたEXEC ID

DML Type

SDBデータベース内で実行したデータベース操作(出力文字数は最大11バイト)

  • FETCH:レコードの検索,または位置指示子の位置づけ

  • STORE:レコードの格納

  • ERASE:レコードの削除

  • MODIFY:レコードの更新

  • NULLIFY:位置指示子への空値設定

  • FETCHDB ALL:複数レコードの検索

Record Name

操作対象のレコード型名(出力文字数は最大30バイト)

複数レコードの検索(FETCHDB ALL)の場合はルートレコード型名が表示されます。

Bes Name

操作対象のバックエンドサーバ名(出力文字数は最大8バイト)

RDAREA

次の情報が表示されます。

DML Type がNULLIFYの場合は出力されません。

  • 操作対象のRDエリア名(インナレプリカ機能使用時はオリジナルRDエリア名)(出力文字数は最大30バイト)

  • 操作対象のRDエリアID(16進数形式)(出力文字数は最大10バイト)

Pointer Code

HiRDB/SD内で実行された指示コード(出力文字数は最大4バイト)

文字として表示できない場合は16進形式で表示されます。

Direction

HiRDB/SD内で実行された検索コード(出力文字数は最大4バイト)

文字として表示できない場合は16進形式で表示されます。

レコードの検索時(FETCH),または位置指示子の位置づけ(FIND)のときに指示コードにU以外が指定されている場合,0x00が表示されます。

Pointer Opt

HiRDB/SD内で実行したポインタオプション(出力文字数は最大4バイト)

文字として表示できない場合は16進形式で表示されます。

Insert Code

HiRDB/SD内で実行した挿入位置検索の種別

ORDER LAST:子レコード実現値群の最後に格納します。

ORDER SORTED:子レコードで指定したキー項目の値に従って,昇順または降順に格納します。

KEYDATA

KEYDATA(出力文字数は最大512バイト)

  • ルートレコードの検索(FETCH),または位置指示子の位置づけ(FIND)の場合:対象となるレコードのKEYDATA(シーケンシャルインデクスキー)を16進形式で表示します。

  • 子レコードの検索(FETCH)の場合:対象となるレコードのKEYDATA(一連番号)を10進形式で表示します。

  • 複数レコードの検索(FETCHDB ALL)の場合:ルートレコードのKEYDATA(シーケンシャルインデクスキー)を16進形式で表示します。

Index Name

レコードの検索に使用したインデクス名(出力文字数は最大30バイト)

インデクスを使用しない場合,この行は表示されません。

SearchCnd

サーチ条件の種類およびサーチ条件の絞り込み範囲(出力文字数は最大105バイト)

インデクスを使用した検索を行わない場合,この行は表示されません。

サーチ条件については,マニュアル「HiRDB コマンドリファレンス」の「サーチ条件」を参照してください。

アクセスパス情報では,?パラメタにSDBデータベース内で生成した番号が付与されます。

例:SearchCnd:AT [?(1)]

1つのユーザの条件値を複数の条件から参照している場合,番号は等しくなります。

KeyCnd

キー条件

キー条件がない場合,この行は表示されません。

キー条件については,マニュアル「HiRDB コマンドリファレンス」の「キー条件」を参照してください。

アクセスパス情報では,?パラメタにSDBデータベース内で生成した番号が付与されます。

例:MAM_CHILD1.DBNAME>?(3)

1つのユーザの条件値を複数の条件から参照している場合,番号は等しくなります。

RowCnd

システムが使用する内部情報

Parameter

次の情報が表示されます。

サーチ条件,キー条件,ロー条件がない場合,この行は表示されません。

  • ?パラメタに付与された,SDBデータベース内で生成された番号(昇順)(出力文字数は最大2バイト)

  • 上記の番号に対応するサーチ条件,キー条件,ロー条件で使用する条件値(16進数形式)(単位:バイト)

Search Status

複数レコードの検索時の検索状態

  • 0x00:検索結果がNOT FOUNDとなった場合

  • FINISH:1つのファミリをすべて検索した場合

  • HALFWAY:1つのファミリのレコードの格納中に,データ格納エリアが満杯になった場合

Unused Len

複数レコードの検索時のデータ格納エリアの余り領域長(出力文字数は最大5バイト)(単位:バイト)

検索結果がNOT FOUNDのときは,データ格納エリアの領域長が表示されます。

Record List

  • 複数レコードの検索時に検索したレコードのレコード型名(出力文字数は最大30バイト)

    SDBディレクトリ情報に対応するレコード型名が設定されていない場合は,*****が表示されます。

  • 複数レコードの検索時に検索したレコードごとの検索レコード数(出力文字数は最大3バイト)

注※

FIND文(位置指示子の位置づけ)のSDBデータベースの操作種別は'FETCH'と表示されます。

(b) 位置指示子情報

位置指示子情報には,SDBデータベースを操作するAPIまたはDMLの実行時に使用した位置指示子について,APIまたはDMLの実行後の状態が出力されます。

SDBデータベースを操作するAPIまたはDMLと,出力される位置指示子情報の関係を次の表に示します。

SDBデータベースを操作するAPIまたはDML

レコード位置指示子

親子集合位置指示子

FETCH

ルートレコード

×

子レコード

×

FIND

×

STORE

ルートレコード

×

子レコード

×

MODIFY

×

ERASE

×

NULLIFY

×

FETCHDB ALL

×

×

(凡例)

○:出力されます。

×:出力されません。

[出力例]

[図データ]

[説明]

出力内容

説明

Cursor Type

位置指示子種別(出力文字数は最大13バイト)

  • RECORD CURSOR:レコード位置指示子

  • SET CURSOR:親子集合位置指示子

Record Name

レコード位置指示子に対応するレコードビュー名(出力文字数は最大30バイト)

位置指示子種別がSET CURSOR(親子集合位置指示子)の場合,この行は表示されません。

レコードビュー名が設定されていない場合,“*****”が表示されます。

P Rec Name

親子集合位置指示子の親に対応するレコードビュー名(出力文字数は最大30バイト)

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

レコードビュー名が設定されていない場合,“*****”が表示されます。

C Rec Name

親子集合位置指示子の子に対応するレコードビュー名(出力文字数は最大30バイト)

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

レコードビュー名が設定されていない場合,“*****”が表示されます。

SDBKEY

レコード位置指示子が指すSDBKEY(16進数形式)(出力文字数は最大34バイト)

位置指示子種別がSET CURSOR(親子集合位置指示子)の場合,この行は表示されません。

SDBKEY(P)

親子集合位置指示子が指す親のSDBKEY(16進数形式)(出力文字数は最大34バイト)

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

SDBKEY(C1)

親子集合位置指示子が指す子のSDBKEY(16進数形式)(出力文字数は最大34バイト)

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

SDBKEY(C2)

親子集合位置指示子が指す子のSDBKEY(16進数形式)(出力文字数は最大34バイト)

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

また,位置指示子種別がSET CURSOR(親子集合位置指示子)であっても,親子集合位置指示子が複合状態でない場合,この行は表示されません。

Complex

親子集合位置指示子が複合状態であるかどうか(出力文字数は最大3バイト)

YES:複合状態である

NO:複合状態でない

位置指示子種別がRECORD CURSOR(レコード位置指示子)の場合,この行は表示されません。

EraseRetain

システムが使用する内部情報

Idx Name1

位置指示子に対応するインデクスのインデクス名(出力文字数は最大30バイト)

位置指示子中にインデクスの情報を保持していない場合,この行は表示されません(領域だけ存在している場合,“*****”が表示されます)。

Idx Key Len1

位置指示子に対応するインデクスのインデクスキー長(出力文字数は最大3バイト)

位置指示子中にインデクスの情報を保持していない場合,この行は表示されません。

Idx Key1

位置指示子に対応するインデクスのインデクスキー(16進数形式)(出力文字数は最大1,016バイト)

位置指示子中にインデクスの情報を保持していない場合,またはインデクスキー長が0の場合,この行は表示されません。

Idx Name2

位置指示子に対応するインデクスのインデクス名(出力文字数は最大30バイト)

位置指示子中にインデクスの情報を2本分保持していない場合,この行は表示されません(領域だけ存在している場合,“*****”が表示されます)。

Idx Key Len2

位置指示子に対応するインデクスのインデクスキー長(出力文字数は最大3バイト)

位置指示子中にインデクスの情報を2本分保持していない場合,この行は表示されません。

Idx Key2

位置指示子に対応するインデクスのインデクスキー(16進数形式)(出力文字数は最大1,016バイト)

位置指示子中にインデクスの情報を保持していない場合,またはインデクスキー長が0の場合,この行は表示されません。

注※

SDBKEYは空値であっても,0x00000000000000000000000000000000のように値が出力されます。

(c) 増加するアクセスパス情報および位置指示子情報の容量

アクセスパス情報および位置指示子情報を表示すると,SQLトレースファイルの容量が次の式で示す容量分増えます。SQLトレースファイルの見積もり時には注意してください。ただし,SDBデータベースの定義,およびSDBデータベースを操作するAPIまたはDMLによって,容量は大きく変わります。次の式で見積もった値は,ある程度の目安にしてください。

増加量(単位:キロバイト)=60×SDBデータベースを操作するAPIまたはDMLの実行回数

(d) アクセスパス情報および位置指示子情報が省略された場合

通信量の制限によってアクセスパス情報および位置指示子情報が省略された場合,その個数が次のように出力されます。

(例)

The number of omitted blocks of DML Optimizer and SDB Cursor is 10.

(e) UAP単位の情報

UAP単位の情報に,次の項目が出力されます。

  • 終端検知用の検索実行回数(SDTFC)

    UAPからのSDBデータベースを操作するAPIの実行要求時,HiRDB/SDが内部的に実行する終端検知用の(レコードの検索時に最終のレコードかどうかを判定するための),FETCHまたはFETCHDB ALLを実行した回数が出力されます。

UAP単位の情報に出力される上記以外の項目については,マニュアル「HiRDB UAP開発ガイド」の「UAP統計レポートの見方」を参照してください。