2.76.1 pdobilsの形式と規則
(1) 機能
SQLオブジェクト用バッファに格納されているSQLオブジェクトの統計情報を表示します。この情報から,処理時間の掛かるSQLや入出力の多いSQLを特定できたり,SQLオブジェクトの再利用状況を把握できたりします。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
pdobils 〔-s サーバ名〕 〔-R|-r〕 〔-C 〔区切り文字〕 〔-H〕〕 〔-e〕 〔-U〕 〔-NR〕 〔-N SQLオブジェクト番号〔,SQLオブジェクト番号〕…〕
(4) オペランド
(a) -s サーバ名 〜<識別子>((1〜8))
特定サーバの情報を表示する場合,又は特定サーバの統計情報のカウンタを初期化する場合,そのサーバ名(シングルサーバ又はフロントエンドサーバ)を指定します。
(b) -R|-r
統計情報のカウンタを初期化する場合に指定します。例えば,統計情報のカウンタがオーバフローした場合※など,このオプションを指定します。
- -R:
-
SQLオブジェクトバッファ統計情報を出力した後に,カウンタを初期化する場合に指定します。一定間隔で統計情報を繰り返し取得する場合は,このオプションを指定することをお勧めします。
- -r:
-
SQLオブジェクトバッファ統計情報のカウンタの初期化だけを行う場合に指定します。カウンタが初期化される項目については,出力形式を参照してください。
- 注※
-
SQLオブジェクト用バッファに格納されている各SQLオブジェクトのカウンタは,SQLオブジェクトを再利用し続けると,オーバフローすることがあります。カウンタがオーバフローした場合,統計情報の表示項目に*が表示されます。
(c) -C 〔区切り文字〕 〜<文字列>((1〜10))
統計情報をDAT形式で出力する場合に指定します。
要素を区切って出力したい場合は,区切り文字を指定します。省略した場合,タブ記号が区切り文字になります。なお,区切り文字の先頭にハイフン(-)は指定できません。
(d) -H
-Cオプション指定時に,1行目にタイトル行を出力する場合に指定します。
(e) -e
実行回数(出力形式のEXECUTE COUNTの項目)が1以上の統計情報だけを出力する場合に指定します。
(f) -U
pdobilsコマンド実行時に,実行中のSQLのSQLオブジェクト情報と,そのSQLを実行しているUAPの情報を出力する場合に指定します。
pdobilsコマンド実行時の実行タイミングと出力される統計情報の関係を次の図に示します。
- 〔説明〕
-
pdobilsコマンドの実行タイミングによって,統計情報の出力有無が変わります。各実行時点での統計情報の出力有無は次のようになります。
pdobilsコマンド実行時点
実行しているSQLの統計情報出力有無
備考
1
×
SQL文の前処理が完了し,UAPに結果が返るまでの間にコマンドを実行すると,統計情報が出力される場合があります。
2
×
なし。
3
○
SQL文実行中に前処理結果が無効※になると,統計情報が出力されない場合があります。
(g) -NR
SQL文中の改行コード(0x0A),及び復帰コード(0x0D)を,空白コード(0x20)に置き換える場合に指定します。
(h) -N SQLオブジェクト番号〔,SQLオブジェクト番号〕…
SQLオブジェクトに関する保守情報を出力する場合,出力するSQLオブジェクトのSQLオブジェクト番号を指定します※。
SQLオブジェクト番号は,「出力形式」の「6. SQLオブジェクトの番号」の項目に表示される値を指定してください。
ただし,コマンド実行時に指定されたSQLオブジェクト番号のSQLオブジェクトがバッファに存在しない場合,そのSQLオブジェクトに関する保守情報は出力されません。
- 注※
-
マルチフロントエンドサーバを利用している場合は,出力したいSQLオブジェクトが存在するフロントエンドサーバのサーバ名を-sオプションで指定してください。マルチフロントエンドサーバを利用している場合にサーバ名を省略すると,KFPN91001-Iメッセージが表示されます。
(5) 規則
-
pdobilsコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdobilsコマンドは,任意のサーバマシンで実行してください。
(6) 注意事項
-
pdobilsコマンドの結果は,コマンド実行時のリターンコードで確認できます。リターンコードが0の場合は正常終了,4の場合は異常終了です。
-
pdobilsコマンドは,SQLオブジェクト用バッファを操作するため,操作のオーバヘッドによってHiRDBに負荷が掛かることがあります。
-
pdobilsコマンドを強制終了した場合,SQLオブジェクト用バッファを操作するSQLの処理,及びプロセス後の処理が最大1分待たされます。pdobilsコマンドは強制終了しないでください。
-
統計情報を取得するタイミングは,システム定義のpd_sqlobject_stat_timingオペランドの指定値によって異なります。
-
SQLオブジェクトの実行時間は,トランザクション決着,又はSQLオブジェクトの解放時に,SQLオブジェクト用バッファに反映されます。pdobilsコマンド実行時に表示されるSQLオブジェクトの実行時間を次の図に示します。
図2‒6 pdobilsコマンド実行時に表示されるSQLオブジェクトの実行時間
- 〔説明〕
-
pdobilsコマンドの実行タイミングによって,表示されるSQLオブジェクトの実行時間は変わります。各実行時点で表示される時間は次のようになります。
pdobilsコマンド実行時点
SQL1
SQL2
SQL3
SQL4
1
×
×
×
×
2
○
○
×
×
3
○
○
○
○
- (凡例)
-
○:表示される実行時間に,該当するSQLの時間が反映されます。
×:表示される実行時間に,該当するSQLの時間は反映されません。
- 注1
-
カーソルを使用した場合の実行時間は,カーソルのオープンからクローズまでにサーバが行った処理時間の合計となります。
- 注2
-
pdobilsコマンドの実行中でも,SQLオブジェクト用バッファはほかのUAPなどから利用されます。そのため,pdobilsコマンド実行中にトランザクションが決着したSQLオブジェクトがある場合,その情報が残っていれば出力情報に反映されます。
- 注3
-
実行時間は,推奨モード又は互換モードによって次のとおり変更となります。
動作モード
実行時間
推奨モード
マイクロ秒単位
v09-04互換モード
秒単位(秒未満切り捨て)
(7) 出力形式
pdobilsコマンドの出力形式は,指定されたオプションの組み合わせによって,次に示す形式で出力されます。
-U,-Nオプションの指定 |
-Cオプションの指定 |
|
---|---|---|
なし |
あり |
|
-Uオプションなし,-Nオプションなし |
一般出力形式 |
一般出力DAT形式 |
-Uオプションあり |
実行中情報出力形式 |
実行中情報出力DAT形式 |
-Nオプションあり |
保守情報出力形式 |
− |
(a) 一般出力形式
pdobils VV-RR-ZZ [70] << SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1] HOST NAME : node01 [2] SERVER NAME : fes01 [3] CACHE SIZE(KB) : 2048 [4] SQL OBJECT TOTAL SIZE(B) : 1932556 [5] << SQL OBJECT LIST >> *SQL OBJECT NO : 1 [6] STATUS : ACTIVE [7] TYPE : STATIC SQL [8] SIZE : 7792 [9] EXECUTE COUNT : 10 [10] EXECUTE TIME AVG(s) : 1.234567 [11] EXECUTE TIME MAX(s) : 9.000000 [12] # SERVICE NAME : [13] # UAP NAME : Unknown [14] # CONNECT NO : 123 [15] # SQL NO : 456 [16] # RECORD DATE/TIME : 2004/01/01 00:00:00 [17] DB REFERENCE GET COUNT : 55500 [28] AVG 5550 [29] MAX 5600 [30] DB UPDATE GET COUNT : 0 [31] AVG 0 [32] MAX 0 [33] DB READ COUNT : 800 [34] AVG 80 [35] MAX 85 [36] DB WRITE COUNT : 0 [37] AVG 0 [38] MAX 0 [39] LOB REFERENCE GET COUNT : 0 [40] AVG 0 [41] MAX 0 [42] LOB UPDATE GET COUNT : 0 [43] AVG 0 [44] MAX 0 [45] LOB READ COUNT : 0 [46] AVG 0 [47] MAX 0 [48] LOB WRITE COUNT : 0 [49] AVG 0 [50] MAX 0 [51] LIST REFERENCE GET COUNT : 0 [52] AVG 0 [53] MAX 0 [54] LIST UPDATE GET COUNT : 0 [55] AVG 0 [56] MAX 0 [57] LIST READ COUNT : 0 [58] AVG 0 [59] MAX 0 [60] LIST WRITE COUNT : 0 [61] AVG 0 [62] MAX 0 [63] WKFILE READ COUNT : 0 [64] AVG 0 [65] MAX 0 [66] WKFILE WRITE COUNT : 0 [67] AVG 0 [68] MAX 0 [69] PREPROCESSOR USER : user1 [18] PREPROCESSOR SOURCE : abc.ec [19] SECTION NO : 123 [20] ISOLATION LEVEL : 2 [21] OPTIMIZE LEVEL : 10 [22] ADDITIONAL OPTIMIZE LEVEL : 0 [23] DEFAULT SCHEMA : [24] ROUTINE ID : 123 [25] ACCESS TYPE SSCT# n : user1.ZAIKO (T:0x0002007b) INDEX SCAN (I:0x00030005)[71] SQL : SELECT GNO,GNAME,KIKAKU,TANKA,SURYO,GENKA FROM ZAIKO [26] << SQL OBJECT STATUS COUNT >> [27] STATUS | TYPE STATIC SQL DYNAMIC SQL ROUTINE TOTAL ACTIVE : 0 0 0 0 LRU : 0 0 0 0 TEMPORARY : 0 0 0 0 COMPILE/TRANSFER : 0 0 0 0 PROCESS : - - - 0 RELEASE : - - - 0 TOTAL : 0 0 0 0
- 注1
-
出力される情報は,サーバの種別,及びステータスによって異なります。
- 注2
-
6〜26,及び28〜69,及び71の項目は,SQLオブジェクトの数分繰り返されます。また,タイプ,及びステータスによって,出力される情報が変わります。詳細については,〔注意事項〕を参照してください。
- 注3
-
-sオプションを指定しなかった場合,1〜69,及び71の情報がシングルサーバ又はフロントエンドサーバの数分繰り返されます。
- 注4
-
-Rオプション,又は-rオプションを指定した場合に初期化される項目は,10〜17,及び28〜69です。
- 〔説明〕
-
-
統計情報の表示時刻
統計情報を表示した時刻が表示されます。
-
ホスト名
統計情報を取得したホスト名が表示されます。
-
サーバ名
統計情報を取得したサーバ名が表示されます。
-
SQLオブジェクト用バッファのサイズ
SQLオブジェクト用バッファのサイズが表示されます(単位:キロバイト)。
-
SQLオブジェクトの合計サイズ
SQLオブジェクト用バッファに格納しているSQLオブジェクトの合計サイズが表示されます(単位:バイト)。なお,pdobilsコマンド実行中に,SQLオブジェクト用バッファがほかのUAPなどから利用された場合,各SQLオブジェクトのサイズの合計と,SQLオブジェクトの合計サイズが一致しないことがあります。
-
SQLオブジェクトの番号
SQLオブジェクト用バッファ中の管理番号が表示されます。
-
ステータス
SQLオブジェクトの状態が表示されます。SQLオブジェクトの状態を次に示します。
状態
説明
ACTIVE
SQLオブジェクトを利用しているUAPがあることを示します。
LRU
SQLオブジェクト用バッファにSQLオブジェクトが格納されているが,それを使用しているUAPがないことを示します。
TEMPORARY
プロセス間で共有しないSQLオブジェクトを示します。次のどちらかに該当する場合,SQLオブジェクトはプロセス間で共有しません。
-
クライアント環境定義PDVWOPTMODE又はPDUAPREPLVLで,SQLオブジェクトの作成を行う指定をした場合
-
動的SQLのSQLオブジェクトを,SQLオブジェクト用バッファに格納中である場合
COMPILE/TRANSFER
静的SQLのSQLオブジェクトを作成中,又はフロントエンドサーバからバックエンドサーバ又はディクショナリサーバにSQLオブジェクトを転送中であることを示します。
PROCESS
SQLオブジェクトをプロセスメモリで管理していることを示します。
RELEASE
SQLオブジェクトを解放中,又は無効になったことを示します。
-
-
タイプ
SQLオブジェクトのタイプを表示します。
STATIC SQL:静的SQLのSQLオブジェクトです。
DYNAMIC SQL:動的SQLのSQLオブジェクトです。
ROUTINE:ルーチンのSQLオブジェクトです。
-
サイズ
SQLオブジェクトのサイズが表示されます(単位:バイト)。
-
実行回数※4
SQLオブジェクトを実行した回数が表示されます。
-
平均実行時間
SQLオブジェクトの平均実行時間が表示されます(単位:秒)。
-
最大実行時間
SQLオブジェクトの最大実行時間が表示されます(単位:秒)。
-
サービス名
OLTP環境下でUAPを実行した場合,最大実行時間を記録したサービス名が表示されます。
-
UAP名
最大実行時間を記録したUAP名が表示されます。UAP名が特定できない場合は表示されません。
-
CONNECT通番※4
最大実行時間を記録したUAPのCONNECT通番が表示されます。
-
SQL番号※4
最大実行時間を記録したSQL番号が表示されます。
-
記録した時刻
最大実行時間を記録した時刻が表示されます。
-
プリプロセスしたユーザの認可識別子
UAPのソースプログラムのプリプロセスを実行したユーザの認可識別子が表示されます。なお,この項目は,静的SQLのSQLオブジェクトの場合に表示されます。
-
プリプロセスしたソースプログラム名
プリプロセスをしたソースプログラム名が表示されます。なお,この項目は,静的SQLのSQLオブジェクトの場合に表示されます。
-
セクション番号
セクション番号が表示されます。なお,この項目は,静的SQLのSQLオブジェクトの場合に表示されます。
-
データ保証レベル
データ保証レベルが表示されます。なお,この項目は,静的SQL,又は動的SQLのSQLオブジェクトの場合に表示されます。
-
SQL最適化オプション
SQL最適化オプションが表示されます。なお,この項目は,静的SQL,又は動的SQLのSQLオブジェクトの場合に表示されます。
-
SQL拡張最適化オプション
SQL拡張最適化オプションが表示されます。なお,この項目は,静的SQL,又は動的SQLのSQLオブジェクトの場合に表示されます。
-
デフォルトスキーマ名
SQL文で認可識別子を省略した場合,仮定される認可識別子が表示されます。SQL文で認可識別子を指定している場合は表示されません。なお,この項目は,動的SQLのSQLオブジェクトの場合に表示されます。
-
ルーチンのオブジェクトID
ルーチンのオブジェクトIDが表示されます。なお,この項目は,ルーチンのSQLオブジェクトの場合に表示されます。
-
SQL文
SQL文が表示されます。なお,この項目は,静的SQL,又は動的SQLのSQLオブジェクトの場合に表示されます。
-
タイプとステータスごとのSQLオブジェクト数
SQLオブジェクト用バッファで管理しているSQLオブジェクトの,タイプとステータスごとの数を表示します。-eオプション指定時は,EXECUTE COUNTが1以上のSQLオブジェクトだけを集計対象とします。
-
データページ,インデクスページ,及びディレクトリページの参照回数(合計)※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して参照のためのバッファ取得を要求した合計回数です。
-
データページ,インデクスページ,及びディレクトリページの参照回数(平均)※1※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して参照のためのバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
データページ,インデクスページ,及びディレクトリページの参照回数(最大)※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して参照のためのバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
データページ,インデクスページ,及びディレクトリページの更新回数(合計)※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して更新のためのバッファ取得を要求した合計回数です。
-
データページ,インデクスページ,及びディレクトリページの更新回数(平均)※1※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して更新のためのバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
データページ,インデクスページ,及びディレクトリページの更新回数(最大)※2※4
SQLオブジェクトの利用によって,グローバルバッファに対して更新のためのバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
データページ,インデクスページ,及びディレクトリページの実READ回数(合計)※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して入力した回数の合計です。この回数には,プリフェッチ機能で入力した回数は含まれますが,非同期READ機能で入力した回数は含まれません。
-
データページ,インデクスページ,及びディレクトリページの実READ回数(平均)※1※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して入力した回数の,SQLの1回当たりの平均回数です。この回数には,プリフェッチ機能で入力した回数は含まれますが,非同期READ機能で入力した回数は含まれません。
-
データページ,インデクスページ,及びディレクトリページの実READ回数(最大)※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して入力した回数の,SQLの1回当たりの最大回数です。この回数には,プリフェッチ機能で入力した回数は含まれますが,非同期READ機能で入力した回数は含まれません。
-
データページ,インデクスページ,及びディレクトリページの実WRITE回数(合計)※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して出力した回数の合計です。この回数には,デファードライト処理で出力した回数は含まれません。
-
データページ,インデクスページ,及びディレクトリページの実WRITE回数(平均)※1※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して出力した回数の,SQLの1回当たりの平均回数です。この回数には,デファードライト処理で出力した回数は含まれません。
-
データページ,インデクスページ,及びディレクトリページの実WRITE回数(最大)※2※3※4
SQLオブジェクトの利用によって,データページ,インデクスページ,及びディレクトリページに対して出力した回数の,SQLの1回当たりの最大回数です。この回数には,デファードライト処理で出力した回数は含まれません。
-
LOB列のデータページの参照回数(合計)※4
SQLオブジェクトの利用によって,LOB列のデータページを参照するためにバッファ取得を要求した回数の合計です。
-
LOB列のデータページの参照回数(平均)※1※4
SQLオブジェクトの利用によって,LOB列のデータページを参照するためにバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
LOB列のデータページの参照回数(最大)※4
SQLオブジェクトの利用によって,LOB列のデータページを参照するためにバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
LOB列のデータページの更新回数(合計)※4
SQLオブジェクトの利用によって,LOB列のデータページを更新するためにバッファ取得を要求した回数の合計です。
-
LOB列のデータページの更新回数(平均)※1※4
SQLオブジェクトの利用によって,LOB列のデータページを更新するためにバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
LOB列のデータページの更新回数(最大)※4
SQLオブジェクトの利用によって,LOB列のデータページを更新するためにバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
LOB列のデータページの実READ回数(合計)※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実READ回数の合計です。
-
LOB列のデータページの実READ回数(平均)※1※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実READ回数の,SQLの1回当たりの平均値です。
-
LOB列のデータページの実READ回数(最大)※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実READ回数の,SQLの1回当たりの最大値です。
-
LOB列のデータページの実WRITE回数(合計)※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実WRITE回数の合計です。
-
LOB列のデータページの実WRITE回数(平均)※1※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実WRITE回数の,SQLの1回当たりの平均値です。
-
LOB列のデータページの実WRITE回数(最大)※4
SQLオブジェクトの利用によって,LOB列のデータページに対して発生した実WRITE回数の,SQLの1回当たりの最大値です。
-
リストページの参照回数(合計)※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ参照のためのバッファ取得を要求した合計回数です。
-
リストページの参照回数(平均)※1※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ参照のためのバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
リストページの参照回数(最大)※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ参照のためのバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
リストページの更新回数(合計)※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ更新のためのバッファ取得を要求した合計回数です。
-
リストページの更新回数(平均)※1※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ更新のためのバッファ取得を要求した,SQLの1回当たりの平均回数です。
-
リストページの更新回数(最大)※4
SQLオブジェクトの利用によって,グローバルバッファに対してリストページ更新のためのバッファ取得を要求した,SQLの1回当たりの最大回数です。
-
リストページの実READ回数(合計)※4
SQLオブジェクトの利用によって,リストページに対して発生した実READ回数の合計です。
-
リストページの実READ回数(平均)※1※4
SQLオブジェクトの利用によって,リストページに対して発生した実READ回数の,SQLの1回当たりの平均値です。
-
リストページの実READ回数(最大)※4
SQLオブジェクトの利用によって,リストページに対して発生した実READ回数の,SQLの1回当たりの最大値です。
-
リストページの実WRITE回数(合計)※4
SQLオブジェクトの利用によって,リストページに対して発生した実WRITE回数の合計です。
-
リストページの実WRITE回数(平均)※1※4
SQLオブジェクトの利用によって,リストページに対して発生した実WRITE回数の,SQLの1回当たりの平均値です。
-
リストページの実WRITE回数(最大)※4
SQLオブジェクトの利用によって,リストページに対して発生した実WRITE回数の,SQLの1回当たりの最大値です。
-
作業表用ファイルのREAD回数(合計)※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したREAD回数の合計です。
-
作業表用ファイルのREAD回数(平均)※1※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したREAD回数の,SQLの1回当たりの平均値です。
-
作業表用ファイルのREAD回数(最大)※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したREAD回数の,SQLの1回当たりの最大値です。
-
作業表用ファイルのWRITE回数(合計)※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したWRITE回数の合計です。
-
作業表用ファイルのWRITE回数(平均)※1※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したWRITE回数の,SQLの1回当たりの平均値です。
-
作業表用ファイルのWRITE回数(最大)※4
SQLオブジェクトの利用によって,作業表用ファイルに対して発生したWRITE回数の,SQLの1回当たりの最大値です。
-
HiRDBのバージョン
ZZがない場合はVV-RRだけを表示します。
-
アクセス表と検索方法
ACCESS TYPE SSCT# n : aa...a (T:bb...b) cc...c (I:dd...d)
n:システム固有情報を表示します。
aa...a:アクセスする表の表名を表示します。ただし,ビュー表の基表の場合は「*.*」を表示します。
bb...b:アクセスする表のIDを表示します。
cc...c:アクセスする表の検索方法を表示します。検索方法については「検索方法の種類」を参照してください。
dd...d:インデクスのIDを表示します。ただし,cc...cが「TABLE SCAN」の場合は(I:dd...d)を表示しません。
- 注※1
-
平均値の小数点以下は切り捨てられます。ただし,合計がオーバフローした場合,平均値の箇所に「****」を表示します。
- 注※2
-
表やインデクスなどの定義情報が格納されているディクショナリ表へのアクセス回数は含まれません。
- 注※3
-
デファードライト処理とは,グローバルバッファ上で更新されたページをCOMMIT文が発行されてもディスクに書き込まないで,更新ページ数がある一定の値に達した時点でディスクに書き込む処理のことです。デファードライト処理によって,DB処理プロセスと非同期にHiRDBファイルへ出力されます。
プリフェッチ機能とは,DB処理プロセスがディスクボリューム上の表データのページを,複数ページ一括して読み込む機能です。
非同期READ機能とは,DB処理プロセスと非同期にディスクボリューム上の表データのページを,複数ページ一括して読み込む機能です。
- 注※4
-
カウンタがオーバフローすることがあります。オーバフローしたカウンタには,先頭に「*」が表示されます。オーバフローした場合でも,カウンタはカウントし続けます。
-
- 〔注意事項〕
-
タイプとステータスの組み合わせによって,6〜26の項目は表示される場合と表示されない場合とがあります。タイプとステータスの組み合わせによる各項目の表示有無を次の表に示します。なお,番号は出力形式の番号と対応しています。
表2‒13 タイプとステータスの組み合わせによる各項目の表示有無(静的SQLの場合) 番号
タイプ
STATIC SQL
DYNAMIC SQL
ROUTINE
ステータス
ステータス
ステータス
A
L
T
C
P
R
A
L
T
C
P
R
A
L
T
C
P
R
6
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
7
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
8
○
○
−
−
−
−
○
○
−
−
−
−
○
○
−
−
−
−
9
○
○
−
−
−
−
○
○
−
−
−
−
○
○
−
−
−
−
10
○
○
−
−
−
−
○
○
−
−
−
−
○
○
−
−
−
−
11
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
12
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
13
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
14
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
15
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
16
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
17
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
18
○
○
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
19
○
○
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
20
○
○
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
21
○
○
−
−
−
−
○
○
−
−
−
−
×
×
−
−
−
−
22
○
○
−
−
−
−
○
○
−
−
−
−
×
×
−
−
−
−
23
○
○
−
−
−
−
○
○
−
−
−
−
×
×
−
−
−
−
24
×
×
−
−
−
−
○
○
−
−
−
−
−
−
−
−
−
−
25
−
−
−
−
−
−
−
−
−
−
−
−
○
○
−
−
−
−
26
○
○
−
−
−
−
○
○
−
−
−
−
−
−
−
−
−
−
28
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
29
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
30
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
31
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
32
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
33
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
34
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
35
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
36
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
37
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
38
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
39
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
40
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
41
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
42
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
43
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
44
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
45
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
46
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
47
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
48
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
49
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
50
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
51
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
52
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
53
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
54
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
55
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
56
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
57
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
58
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
59
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
60
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
61
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
62
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
63
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
64
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
65
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
66
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
67
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
68
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
69
△
△
−
−
−
−
△
△
−
−
−
−
△
△
−
−
−
−
71
○
○
−
−
−
−
○
○
−
−
−
−
−
−
−
−
−
−
- (凡例)
-
○:表示されます。
△:番号10の項目が1以上の場合に表示されます。0の場合,該当する情報は表示されません。
×:表示されません。
−:該当しません。
A:ACTIVE
L:LRU
T:TEMPORARY
C:COMPILE/TRANSFER
P:PROCESS
R:RELEASE
(b) 実行中情報出力形式
pdobils VV-RR-ZZ [70] << SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1] HOST NAME : node01 [2] SERVER NAME : fes01 [3] CACHE SIZE(KB) : 2048 [4] SQL OBJECT TOTAL SIZE(B) : 1932556 [5] << UAP INFORMATION >> [72] PROCESS ID : 12345678 [73] TRANSACTION ID(GID/BID) : ccccccccdddddddd/cccccccceeeeeeee [74] SERVICE NAME : [75] UAP NAME : pdsql [76] CONNECT NO : 234 [77] << SQL OBJECT LIST >> *SQL OBJECT NO : 1 [6] STATUS : ACTIVE [7] TYPE : STATIC SQL [8] SIZE : 7792 [9] EXECUTE COUNT : 10 [10] EXECUTE TIME AVG(s) : 1.234567 [11] EXECUTE TIME MAX(s) : 9.000000 [12] # SERVICE NAME : [13] # UAP NAME : Unknown [14] # CONNECT NO : 123 [15] # SQL NO : 456 [16] # RECORD DATE/TIME : 2004/01/01 00:00:00 [17] DB REFERENCE GET COUNT : 55500 [28] AVG 5550 [29] MAX 5600 [30] DB UPDATE GET COUNT : 0 [31] AVG 0 [32] MAX 0 [33] DB READ COUNT : 800 [34] AVG 80 [35] MAX 85 [36] DB WRITE COUNT : 0 [37] AVG 0 [38] MAX 0 [39] LOB REFERENCE GET COUNT : 0 [40] AVG 0 [41] MAX 0 [42] LOB UPDATE GET COUNT : 0 [43] AVG 0 [44] MAX 0 [45] LOB READ COUNT : 0 [46] AVG 0 [47] MAX 0 [48] LOB WRITE COUNT : 0 [49] AVG 0 [50] MAX 0 [51] LIST REFERENCE GET COUNT : 0 [52] AVG 0 [53] MAX 0 [54] LIST UPDATE GET COUNT : 0 [55] AVG 0 [56] MAX 0 [57] LIST READ COUNT : 0 [58] AVG 0 [59] MAX 0 [60] LIST WRITE COUNT : 0 [61] AVG 0 [62] MAX 0 [63] WKFILE READ COUNT : 0 [64] AVG 0 [65] MAX 0 [66] WKFILE WRITE COUNT : 0 [67] AVG 0 [68] MAX 0 [69] PREPROCESSOR USER : user1 [18] PREPROCESSOR SOURCE : abc.ec [19] SECTION NO : 123 [20] ISOLATION LEVEL : 2 [21] OPTIMIZE LEVEL : 10 [22] ADDITIONAL OPTIMIZE LEVEL : 0 [23] DEFAULT SCHEMA : [24] ROUTINE ID : 123 [25] ACCESS TYPE SSCT# n : user1.ZAIKO (T:0x0002007b) INDEX SCAN (I:0x00030005)[71] SQL : SELECT GNO,GNAME,KIKAKU,TANKA,SURYO,GENKA FROM ZAIKO [26] << SQL OBJECT STATUS COUNT >> [27] STATUS | TYPE STATIC SQL DYNAMIC SQL ROUTINE TOTAL ACTIVE : 0 0 0 0 LRU : 0 0 0 0 TEMPORARY : 0 0 0 0 COMPILE/TRANSFER : 0 0 0 0 PROCESS : - - - 0 RELEASE : - - - 0 TOTAL : 0 0 0 0
- 〔説明〕
-
1〜71の項目は一般出力形式と同じです。
- 72. SQLを実行しているUAP情報
-
SQLを実行しているUAPの情報を表示します。複数のUAPがSQLを実行している場合は,UAPとSQLオブジェクトの情報(6〜26,及び71〜77の項目)を繰り返し表示します。
- 73. SQLを実行しているUAPが接続しているサーバのプロセスID
-
SQLを実行しているUAPが接続しているフロントエンドサーバ又はシングルサーバのプロセスIDを表示します。
- 74. SQLを実行しているUAPのトランザクションID
-
TRANSACTION ID(GID/BID) : aa...a/bb...b
SQLを実行しているUAPのトランザクションIDを表示します。
aa...a:トランザクションのグローバル識別子
bb...b:トランザクションのブランチ識別子
- 75. SQLを実行しているUAPのサービス名
-
SQLがOLTP環境下で実行されている場合にUAPのサービス名を表示します。
- 76. SQLを実行しているUAP名
-
SQLを実行しているUAP名を表示します。
UAP名が特定できない場合,UAP名を表示しません。
- 77. SQLを実行しているUAPのコネクト通番
-
SQLを実行しているUAPのコネクト通番を表示します。
(c) 保守情報出力形式
pdobils VV-RR-ZZ [70] << SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1] HOST NAME : node01 [2] SERVER NAME : fes01 [3] CACHE SIZE(KB) : 2048 [4] SQL OBJECT TOTAL SIZE(B) : 1932556 [5] << SQL OBJECT #N 12345/67890 >> [78]※ 0001: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789xx 0002: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789xx
- 注※
-
指定されたSQLオブジェクト番号の数分,繰り返し出力します。
指定されたSQLオブジェクト番号のSQLオブジェクトが存在しない場合は,表示されません。
- 〔説明〕
-
4〜5,及び70の項目は,一般出力形式と同じです。
- 1. SQLオブジェクトバッファ統計情報表示時間
-
保守情報を表示した時間を表示します。
- 2. ホスト名
-
保守情報を取得したホスト名を表示します。
- 3. サーバ名
-
保守情報を取得したサーバ名を表示します。
- 78. SQLオブジェクトの番号とサイズ
-
SQL OBJECT #N aa...a/bb...b
N:SQLオブジェクト用バッファ中の管理番号を表示します。
aa...a:保守情報のサイズをバイト単位で表示します。
bb...b:SQLオブジェクトのサイズをバイト単位で表示します。
(d) 一般出力DAT形式
一般出力DAT形式で出力する項目を,先頭から区切り文字列で区切って標準出力に出力します。
出力形式のSQLには,SQL文に含まれているTAB(X'09'),NL(X'0a'),CR(X'0d')などを,そのまま出力します。また,行末には改行文字(0x0d0a)が入ります。
一般出力DAT形式で出力する項目を次の表に示します。
出力する項目名 |
内容 |
---|---|
DATE |
[1]のDATE部分 |
TIME |
[1]のTIME部分 |
HOST NAME |
[2] |
SERVER NAME |
[3] |
CACHE SIZE(KB) |
[4] |
SQL OBJECT TOTAL SIZE(B) |
[5] |
SQL OBJECT NO |
[6] |
STATUS |
[7] |
TYPE |
[8] |
SIZE |
[9] |
EXECUTE COUNT |
[10] |
EXECUTE TIME AVG(s) |
[11] |
EXECUTE TIME MAX(s) |
[12] |
SERVICE NAME |
[13] |
UAP NAME |
[14] |
CONNECT NO |
[15] |
SQL NO |
[16] |
RECORD DATE |
[17]のDATE部分 |
RECORD TIME |
[17]のTIME部分 |
DB REFERENCE GET COUNT |
[28] |
DB REFERENCE GET COUNT(AVG) |
[29] |
DB REFERENCE GET COUNT(MAX) |
[30] |
DB UPDATE GET COUNT |
[31] |
DB UPDATE GET COUNT(AVG) |
[32] |
DB UPDATE GET COUNT(MAX) |
[33] |
DB READ COUNT |
[34] |
DB READ COUNT(AVG) |
[35] |
DB READ COUNT(MAX) |
[36] |
DB WRITE COUNT |
[37] |
DB WRITE COUNT(AVG) |
[38] |
DB WRITE COUNT(MAX) |
[39] |
LOB REFERENCE GET COUNT |
[40] |
LOB REFERENCE GET COUNT(AVG) |
[41] |
LOB REFERENCE GET COUNT(MAX) |
[42] |
LOB UPDATE GET COUNT |
[43] |
LOB UPDATE GET COUNT(AVG) |
[44] |
LOB UPDATE GET COUNT(MAX) |
[45] |
LOB READ COUNT |
[46] |
LOB READ COUNT(AVG) |
[47] |
LOB READ COUNT(MAX) |
[48] |
LOB WRITE COUNT |
[49] |
LOB WRITE COUNT(AVG) |
[50] |
LOB WRITE COUNT(MAX) |
[51] |
LIST REFERENCE GET COUNT |
[52] |
LIST REFERENCE GET COUNT(AVG) |
[53] |
LIST REFERENCE GET COUNT(MAX) |
[54] |
LIST UPDATE GET COUNT |
[55] |
LIST UPDATE GET COUNT(AVG) |
[56] |
LIST UPDATE GET COUNT(MAX) |
[57] |
LIST READ COUNT |
[58] |
LIST READ COUNT(AVG) |
[59] |
LIST READ COUNT(MAX) |
[60] |
LIST WRITE COUNT |
[61] |
LIST WRITE COUNT(AVG) |
[62] |
LIST WRITE COUNT(MAX) |
[63] |
WKFILE READ COUNT |
[64] |
WKFILE READ COUNT(AVG) |
[65] |
WKFILE READ COUNT(MAX) |
[66] |
WKFILE WRITE COUNT |
[67] |
WKFILE WRITE COUNT(AVG) |
[68] |
WKFILE WRITE COUNT(MAX) |
[69] |
PREPROCESSOR USER |
[18] |
PREPROCESSOR SOURCE |
[19] |
SECTION NO |
[20] |
ISOLATION LEVEL |
[21] |
OPTIMIZE LEVEL |
[22] |
ADDITIONAL OPTIMIZE LEVEL |
[23] |
DEFAULT SCHEMA |
[24] |
ROUTINE ID |
[25] |
ACCESS TYPE |
[71] |
SQL |
[26] |
(e) 実行中情報出力DAT形式
実行中情報出力DAT形式で出力する項目を,先頭から区切り文字列で区切って標準出力に出力します。
出力形式のSQLには,SQL文に含まれているTAB(X'09'),NL(X'0a'),CR(X'0d')などを,そのまま出力します。また,行末には改行文字(0x0d0a)が入ります。
実行中情報出力DAT形式で出力する項目を次の表に示します。
出力する項目名 |
内容 |
---|---|
DATE |
[1]のDATE部分 |
TIME |
[1]のTIME部分 |
HOST NAME |
[2] |
SERVER NAME |
[3] |
CACHE SIZE(KB) |
[4] |
SQL OBJECT TOTAL SIZE(B) |
[5] |
PROCESS ID |
[73] |
TRANSACTION ID(GID/BID) |
[74] |
SERVICE NAME |
[75] |
UAP NAME |
[76] |
CONNECT NO |
[77] |
SQL OBJECT NO |
[6] |
STATUS |
[7] |
TYPE |
[8] |
SIZE |
[9] |
EXECUTE COUNT |
[10] |
EXECUTE TIME AVG(s) |
[11] |
EXECUTE TIME MAX(s) |
[12] |
SERVICE NAME |
[13] |
UAP NAME |
[14] |
CONNECT NO |
[15] |
SQL NO |
[16] |
RECORD DATE |
[17]のDATE部分 |
RECORD TIME |
[17]のTIME部分 |
DB REFERENCE GET COUNT |
[28] |
DB REFERENCE GET COUNT(AVG) |
[29] |
DB REFERENCE GET COUNT(MAX) |
[30] |
DB UPDATE GET COUNT |
[31] |
DB UPDATE GET COUNT(AVG) |
[32] |
DB UPDATE GET COUNT(MAX) |
[33] |
DB READ COUNT |
[34] |
DB READ COUNT(AVG) |
[35] |
DB READ COUNT(MAX) |
[36] |
DB WRITE COUNT |
[37] |
DB WRITE COUNT(AVG) |
[38] |
DB WRITE COUNT(MAX) |
[39] |
LOB REFERENCE GET COUNT |
[40] |
LOB REFERENCE GET COUNT(AVG) |
[41] |
LOB REFERENCE GET COUNT(MAX) |
[42] |
LOB UPDATE GET COUNT |
[43] |
LOB UPDATE GET COUNT(AVG) |
[44] |
LOB UPDATE GET COUNT(MAX) |
[45] |
LOB READ COUNT |
[46] |
LOB READ COUNT(AVG) |
[47] |
LOB READ COUNT(MAX) |
[48] |
LOB WRITE COUNT |
[49] |
LOB WRITE COUNT(AVG) |
[50] |
LOB WRITE COUNT(MAX) |
[51] |
LIST REFERENCE GET COUNT |
[52] |
LIST REFERENCE GET COUNT(AVG) |
[53] |
LIST REFERENCE GET COUNT(MAX) |
[54] |
LIST UPDATE GET COUNT |
[55] |
LIST UPDATE GET COUNT(AVG) |
[56] |
LIST UPDATE GET COUNT(MAX) |
[57] |
LIST READ COUNT |
[58] |
LIST READ COUNT(AVG) |
[59] |
LIST READ COUNT(MAX) |
[60] |
LIST WRITE COUNT |
[61] |
LIST WRITE COUNT(AVG) |
[62] |
LIST WRITE COUNT(MAX) |
[63] |
WKFILE READ COUNT |
[64] |
WKFILE READ COUNT(AVG) |
[65] |
WKFILE READ COUNT(MAX) |
[66] |
WKFILE WRITE COUNT |
[67] |
WKFILE WRITE COUNT(AVG) |
[68] |
WKFILE WRITE COUNT(MAX) |
[69] |
PREPROCESSOR USER |
[18] |
PREPROCESSOR SOURCE |
[19] |
SECTION NO |
[20] |
ISOLATION LEVEL |
[21] |
OPTIMIZE LEVEL |
[22] |
ADDITIONAL OPTIMIZE LEVEL |
[23] |
DEFAULT SCHEMA |
[24] |
ROUTINE ID |
[25] |
ACCESS TYPE |
[71] |
SQL |
[26] |
(8) 統計情報の見方
統計情報の見方について説明します。
-
番号27のPROCESSについて
STATUSがPROCESSのTOTAL数がカウントされている場合,SQLオブジェクト用バッファにSQLオブジェクトが格納できないため,プロセスごとにSQLオブジェクトを管理していることを示します。
常にカウントされている場合は,SQLオブジェクト用バッファを再度見積もり直すことをお勧めします。
-
番号27のDYNAMICについて
-
その1
STATUSがTEMPORARYのSTATIC SQL数がカウントされている場合,クライント環境定義PDUAPREPLVLが設定されているUAPを実行していることを示します。
PDUAPREPLVLが不要なUAPの場合,PDUAPREPLVLの指定を削除してUAPを実行することをお勧めします。
-
その2
STATUSがTEMPORARYのDYNAMIC SQL数が常にカウントされている場合,クライント環境定義PDUAPREPLVL,及びPDVWOPTMODEが設定されているUAPを実行していることを示します。
PDUAPREPLVL,及びPDVWOPTMODEが不要なUAPの場合,PDUAPREPLVL,及びPDVWOPTMODEの指定を削除してUAPを実行することをお勧めします。
-
実行中SQL文の特定について
-Uオプションを指定することで,<<CURRENT SQL OBJECT>>の「SQL」から,実行しているSQLを特定できます。-Uオプションを指定しない場合でも,SQLオブジェクト用バッファが十分にある場合,次の手順で統計情報を参照すると,実行中のSQL文を特定できます。なお,実行中のSQL文を特定する場合,PDUAPREPLVL及びPDVWOPTMODEを指定しないで,再利用ありを指定する必要があります。
-
STATUSがACTIVEのSQLオブジェクトを特定します。
-
1.のSQLオブジェクトのSQLを参照します。なお,静的SQLの場合は,更にSQLを実行しているUAPも特定できます。SQLオブジェクトのPREPROCESSOR USE,及びPREPROCESSOR SOURCEを参照し,そのプリプロセスをしたソースを使用しているUAPが,SQL文を実行しているUAPとなります。
-
-
チューニングの対象となるSQLについて
次の項目の値を参照し,値が大きいSQL文がチューニング対象となります。
-
SQLオブジェクトの実行回数
-
SQLオブジェクトの平均実行時間
-
SQLオブジェクトの最大実行時間
-
データページ,インデクスページ,及びディレクトリページの参照回数
-
データページ,インデクスページ,及びディレクトリページの更新回数
-
データページ,インデクスページ,及びディレクトリページの実READ回数
-
データページ,インデクスページ,及びディレクトリページの実WRITE回数
-
作業表用ファイルのREAD回数
-
作業表用ファイルのWRITE回数
アクセス表と検索方法を確認し,意図した検索方法で検索されていない場合は,SQLチューニングを行うことを検討してください。
チューニングの詳細については,マニュアル「HiRDB Version 9 システム運用ガイド」の実行時間が長いSQLのチューニングを参照してください。
-