Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


10.11.2 SQLトレース情報に出力される情報

SQLトレース情報には,次の情報が出力されます。

メモ

エラーが発生してSQL文の処理が中断した場合,その時点で取得できなかったSQLトレース情報は出力されません。

各情報の出力項目について説明します。

〈この項の構成〉

(1) HADBサーバのバージョン情報

HADBサーバのバージョン情報の出力例を次に示します。

Hitachi Advanced Data Binder 03-01 Aug  5 2015 18:32:45
[説明]
  • 下線部分には,HADBサーバのバージョンが出力されます。

  • 下線部分より後ろの部分には,HADBサーバのバージョン付加情報が次の形式で出力されます。

    MMM DD YYYY hh:mm:ss

    MMM:月が英略語の形式で出力されます。

    DD:日が出力されます。

    YYYY:西暦が出力されます。

    hh:mm:ss:時刻が出力されます。

メモ

HADBサーバのバージョン情報は,SQLトレースファイルの先頭に出力されます。

(2) SQL文の実行情報

SQL文の実行情報の出力例と出力される項目について説明します。

(a) SQL文の実行情報の出力例

SQL文の実行情報の出力例を次に示します。

[図データ]

(b) SQL文の実行情報に出力される項目

SQL文の実行情報に出力される項目を次の表に示します。

表10‒10 SQL文の実行情報に出力される項目

項番

項目名

説明

1

con_id

コネクションIDが出力されます。

2

con_num

HADBサーバの開始後に割り振られるコネクション通番が出力されます。

3

stmt_hdl

SQL文に割り当てられた文ハンドルが出力されます。

4

sql_serial_num

コネクション確立後に割り振られるSQL文通番が出力されます。

5

call

SQL文の実行情報の対象となるコール種別が出力されます。出力されるコール種別と実行された処理の対応を「表10‒11 コール種別と実行された処理の対応」に示します。

なお,コールとは,コネクションの確立または終了,トランザクションの正常終了または取り消し,およびSQL文を使用したデータベースに対する操作の単位のことです。

SQL文単位でSQLトレース情報を出力している場合,SQL文の実行が完了したときに(コール単位のCLOSEXEC,およびEXDIの実行が完了したときに),SQL文の実行情報が出力されます。このとき,call欄にはSQLと出力されます。

6

sqlcode

SQLCODEが出力されます。

SQLCODEとメッセージの対応付けの方法については,マニュアルHADB メッセージSQLCODEの見方を参照してください。

7

sqlstate

SQLSTATEが出力されます。

SQLSTATEについては,マニュアルHADB メッセージSQLSTATEの一覧を参照してください。

8

start_time

処理の開始時刻が出力されます。

コール単位でSQLトレース情報を出力している場合は,各コールの開始時刻が出力されます。

SQL文単位でSQLトレース情報を出力している場合は,「表10‒12 コール種別がSQLの場合に実行されるコール」で説明している最初のコールの開始時刻が出力されます。

9

end_time

処理の終了時刻が出力されます。

コール単位でSQLトレース情報を出力している場合は,各コールの終了時刻が出力されます。

SQL文単位でSQLトレース情報を出力している場合は,最後に実行したコールの終了時刻が出力されます。

10

exe_time(us)

処理の実行時間がマイクロ秒単位で出力されます。

  • コール単位でSQLトレース情報を出力している場合

    各コールの終了時刻と開始時刻の差が出力されます。

    コールの延長で暗黙的なコミットやロールバックが発生したときは,その処理時間も実行時間に含まれます。また,2回目以降のフェッチに対応するFETCの実行時間は,同一SQL文の実行情報に出力される終了時刻と開始時刻の差ではなく,各フェッチの実行時間の合計になります。

  • SQL文単位でSQLトレース情報を出力している場合

    各コールの実行時間の合計が出力されます。

11

rows

処理対象の行数が出力されます。

コール種別がFETCEXECEXDI,またはSQLの場合に行数が出力されます。

  • コール種別がFETCの場合

    1回目のフェッチのときは,0または1が出力されます。そのあとのフェッチのときは,2回目から最後のフェッチの処理行数が出力されます。

  • コール種別がEXECまたはEXDIの場合

    実行したSQL文がDELETEINSERT,またはUPDATEの場合は,更新した行数が出力されます。それ以外のSQL文の場合は,0が出力されます。

  • コール種別がSQLの場合

    実行したSQL文がSELECTDELETEINSERT,またはUPDATEの場合は,処理対象の行数が出力されます。それ以外のSQL文の場合は,0が出力されます。

12

tran_id

データベースを初期化したときからの通番であるトランザクションIDが出力されます。

13

trn_iso_lv

トランザクション隔離性水準が出力されます。

  • READ_COMMITTED:トランザクション隔離性水準がREAD COMMITTEDの場合に出力されます。

  • REPEATABLE_READ:トランザクション隔離性水準がREPEATABLE READの場合に出力されます。

14

trn_access_mode

トランザクションアクセスモードが出力されます。

  • READ_WRITE:トランザクションアクセスモードが読み書き可能モードの場合に出力されます。

  • READ_ONLY:トランザクションアクセスモードが読み取り専用モードの場合に出力されます。

15

sql_order_mode

文字データの並び替え順序が出力されます。

  • BYTE:文字データをバイトコード順に並び替えた場合に出力されます。

  • ISO:文字データをソートコード順に並び替えた場合に出力されます。

16

cursor_holdability

カーソルの動作が出力されます。

  • CLOSE_CURSORS_AT_COMMIT:コミット時にカーソルをクローズした場合に出力されます。

  • HOLD_CURSORS_OVER_COMMIT:コミットしてもカーソルをクローズしなかった場合に出力されます。

次に示す場合にカーソルの動作が出力されます。

  • コール種別がOPENFETC,またはCLOSの場合

  • コール種別がSQLで,かつ実行したSQL文がSELECT文の場合

17

message_log_info

メッセージログ情報が出力されます。

メッセージログファイルに出力されるメッセージのクライアントプロセスIDおよびコネクション通番が出力されます。

メッセージログ情報をメッセージに出力されているクライアントプロセスIDおよびコネクション通番と突き合わせることで,SQL文のエラー発生時の原因調査に利用できます。利用方法の詳細については,「10.11.7 SQLトレース情報を使用したSQL文のエラー原因調査」を参照してください。

  • コール種別がCNCTDISC,またはDISPの場合,stmt_hdlsql_serial_numrowstran_idtrn_iso_lvtrn_access_mode,およびsql_order_modeの値は出力されません。

  • コール種別がCMITまたはRLBKの場合,stmt_hdlsql_serial_num,およびrowsの値は出力されません。

  • トランザクションの決着によって解放される文ハンドル(SQL文のエラーによってトランザクションが決着した場合は,エラーが発生した文ハンドルを除く)が,次のどれかの条件を満たすときは,callsqlcodesqlstatestart_timeend_timeexe_time,およびrowsの値は出力されません。

    ・上記の文ハンドルの直前のコールがエラーとなった場合

    ・上記の文ハンドルの直前のコール種別がOPENの場合(SQLトレース情報の出力単位がコール単位の場合)

    ・上記の文ハンドルの直前のコール種別がFETCで,かつフェッチが1回だけ実行された場合(SQLトレース情報の出力単位がコール単位の場合)

表10‒11 コール種別と実行された処理の対応

項番

コール種別※1(callに出力された情報)

実行された処理

出力単位※2

出力される追加の情報※3

1

PREP

SQL文の前処理

コール単位

2,4

2

OPEN

カーソルのオープン

3,4

3

CLOS

カーソルのクローズ

4,6

4

FETC

1回目のフェッチ処理,または2回目から最後のフェッチ処理※4

4

5

EXEC

SQL文の実行※5

3,4,6

6

EXDI

SQL文の前処理および実行

2,4,6

7

CMIT

コミット処理

コール単位またはSQL文単位

4

8

RLBK

ロールバック処理

4

9

CNCT

コネクションの確立(APの接続またはコマンドの接続)

1,4,5,7

10

DISC

コネクションの終了

4,5,7

11

DISP

コネクションプール機能を使用した際のコネクションの終了

4

12

SQL

SQL文単位での出力※6,※7

2,3,4,6

注※1

コール種別と実行したJDBCのメソッドの対応については,「(d) 実行したJDBCのメソッドと出力されるコール種別の対応」を参照してください。

コール種別と実行したODBC関数の対応については,「(e) 実行したODBC関数と出力されるコール種別の対応」を参照してください。

コール種別と実行したCLI関数の対応については,「(f) 実行したCLI関数と出力されるコール種別の対応」を参照してください。

注※2

サーバ定義のadb_sql_trc_levelオペランド,またはadbchgsqltrcコマンドで指定したSQLトレース情報を出力する単位を意味しています。

注※3

SQL文の実行情報以外に出力される情報です。表中の番号は,次の番号と対応しています。

1:クライアント定義情報およびコネクション状態に関する情報

2:実行したSQL文およびアクセスパス情報

3:?パラメタの情報

4:トランザクションの情報

5:認可識別子の情報

6:SQL文の統計情報およびアクセスパスの統計情報

7:コネクションの確立または終了の区切り線

注※4

コール種別がFETCの場合,フェッチの回数分のSQLトレース情報が出力されるわけではありません。フェッチの回数が2回以上の場合は,フェッチを繰り返し実行しても,SQL文の実行情報は2つ(1回目のフェッチ処理のSQL文の実行情報と,それ以降の全フェッチの実行結果をまとめたSQL文の実行情報)しか出力されません。フェッチの回数が1回の場合は,SQL文の実行情報は1つだけ出力されます。

注※5

?パラメタの値の一括転送を実施した場合,EXECのSQL文の実行情報は1つだけ出力されます。?パラメタの値の一括転送については,マニュアルHADB AP開発ガイド?パラメタの値の一括転送を参照してください。

注※6

SQL記述ファイルを指定してadbexportコマンドを実行した場合,出力レベルがCALLでも,1つのSQL文の実行情報にまとめられて出力されます。その際,コール種別にはSQLが出力されます。

注※7

SQL文単位でSQLトレース情報を出力する場合,「表10‒12 コール種別がSQLの場合に実行されるコール」に示す実行されるコールに記載されている各コールのSQL文の実行情報が,1つのSQL文の実行情報にまとめられて出力されます。その際,コール種別にはSQLが出力されます。

表10‒12 コール種別がSQLの場合に実行されるコール

項番

SQL文の種類

実行されるコール※1

1

更新系SQL

PREPEXEC

2

EXEC(項番1のコールが実行されたあとに,連続してEXECが実行される場合)

3

EXDI

4

定義系SQL

PREPEXEC

5

EXDI

6

検索系SQL

PREPOPENFETC → 〔FETC〕 → CLOS(明示的にカーソルをクローズした場合)

7

PREPOPENFETC → 〔FETC〕(明示的にカーソルをクローズしない場合※2

〔 〕で囲まれたコール種別は実行されないことがあります。

注※1

SQL文の実行時にエラーが発生した場合,「(c) SQL文の実行時にエラーが発生した場合のSQL文の実行情報の出力(コール種別がSQLの場合)」に示すとおりに,SQL文の実行情報が出力されます。

注※2

カーソルをクローズしないで文ハンドルを解放したり,トランザクションを決着したりした場合が該当します。ただし,「表10‒10 SQL文の実行情報に出力される項目」で説明している「cursor_holdability(カーソル動作)」がHOLD_CURSORS_OVER_COMMITの場合は,コミットしてもカーソルがクローズしないため,該当しません。

(c) SQL文の実行時にエラーが発生した場合のSQL文の実行情報の出力(コール種別がSQLの場合)

SQL文の実行時にエラーが発生した場合,次に示すコールのSQL文の実行情報が,1つにまとめて出力されます。

ただし,エラーが発生したコール種別がFETCだけの場合は,そのエラーの延長で暗黙的なロールバックが発生したかどうかで処理が異なります。

  • エラー時に暗黙的なロールバックが発生した場合

    エラーとなったFETCと,「表10‒12 コール種別がSQLの場合に実行されるコール」で示すコールのうちエラーとなったFETCの前に実行されたコールのSQL文の実行情報が1つにまとめて出力されます。

  • 暗黙的なロールバックが発生しなかった場合

    FETCがエラーとなっても,検索系SQLの実行が完了したとは見なされません。そのあと,CLOSの実行が完了した時点で,検索系SQLの実行が完了したと見なされます。その際,「表10‒12 コール種別がSQLの場合に実行されるコール」の「検索系SQL」の各コールのSQL文の実行情報が1つにまとめて出力されます。

SQL文がエラーになった場合の例を次に示します。

  • 検索系SQLの実行時にOPENでエラーになった場合

    PREPOPENのSQL文の実行情報を1つにまとめて,SQL文単位のSQL文の実行情報として出力されます。

  • 検索系SQLの実行時にFETCでエラーになり,暗黙的なロールバックが発生した場合

    PREPOPEN,〔FETC〕,FETCのSQL文の実行情報を1つにまとめて,SQL文単位のSQL文の実行情報として出力されます。

  • 更新系SQLの実行時にPREPでエラーになった場合

    PREPのSQL文の実行情報がSQL文単位のSQL文の実行情報として出力されます。

(d) 実行したJDBCのメソッドと出力されるコール種別の対応

実行したJDBCのメソッドと出力されるコール種別の対応を次の表に示します。

表10‒13 実行したJDBCのメソッドと出力されるコール種別の対応

項番

実行したJDBCのメソッド

出力されるコール種別

1

Driverインタフェースのconnect(String url, Properties info)

CNCT

2

Connectionインタフェースのclose()

CMITDISCDISP

3

Connectionインタフェースのcommit()

CMIT

4

ConnectionインタフェースのprepareStatement(String sql)

PREP

5

ConnectionインタフェースのprepareStatement(String sql, int resultSetType, int resultSetConcurrency)

6

ConnectionインタフェースのprepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)

7

Connectionインタフェースのrollback()

RLBK

8

Statementインタフェースのclose()

CLOSCMIT

9

Statementインタフェースのexecute(String sql)

PREPOPENEXECEXDICLOSCMITRLBK

10

StatementインタフェースのexecuteBatch()またはexecuteLargeBatch()

PREPEXECEXDICMITRLBK

11

StatementインタフェースのexecuteQuery(String sql)

PREPOPENCLOSCMIT

12

StatementインタフェースのexecuteUpdate(String sql)またはexecuteLargeUpdate(String sql)

PREPEXECEXDICMITRLBK

13

StatementインタフェースのgetMoreResults()

CLOS

14

PreparedStatementインタフェースのexecute()

PREPOPENEXECCLOSCMITRLBK

15

PreparedStatementインタフェースのexecuteQuery()

PREPOPENCLOSCMITRLBK

16

PreparedStatementインタフェースのexecuteUpdate()またはexecuteLargeUpdate()

PREPEXECCMITRLBK

17

ResultSetインタフェースのabsolute(int row)

FETC

18

ResultSetインタフェースのafterLast()

19

ResultSetインタフェースのbeforeFirst()

20

ResultSetインタフェースのfirst()

21

ResultSetインタフェースのisAfterLast()

22

ResultSetインタフェースのisBeforeFirst()

23

ResultSetインタフェースのilast()

24

ResultSetインタフェースのirelative(int rows)

25

ResultSetインタフェースのisLast()

26

ResultSetインタフェースのnext()

27

ResultSetインタフェースのclose()

CLOSCMIT

28

DatabaseMetaDataインタフェースのgetColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)

PREPOPEN

29

DatabaseMetaDataインタフェースのgetCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable)

30

DatabaseMetaDataインタフェースのgetExportedKeys(String catalog, String schema, String table)

31

DatabaseMetaDataインタフェースのgetImportedKeys(String catalog, String schema, String table)

32

DatabaseMetaDataインタフェースのgetIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)

33

DatabaseMetaDataインタフェースのgetPrimaryKeys(String catalog, String schema, String table)

34

DatabaseMetaDataインタフェースのgetSchemas(String catalog, String schemaPattern)

35

DatabaseMetaDataインタフェースのgetTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)

36

DatabaseMetaDataインタフェースのgetTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)

37

DatabaseMetaDataインタフェースのgetSchemas()

38

DataSourceインタフェースのgetConnection()

CNCT

39

DataSourceインタフェースのgetConnection(String username, String password)

40

PooledConnectionインタフェースのclose()

DISC

41

PooledConnectionインタフェースのgetConnection()

CNCT

(e) 実行したODBC関数と出力されるコール種別の対応

実行したODBC関数と出力されるコール種別の対応を次の表に示します。

表10‒14 実行したODBC関数と出力されるコール種別の対応

項番

実行したODBC関数

出力されるコール種別

1

SQLPrepare(W)

PREP

2

SQLExecute

PREPEXECOPENCMIT

3

SQLExecDirect(W)

PREPEXECCMIT

4

SQLParamData

EXECOPENCMIT

5

SQLFetch

FETC

6

SQLColumns(W)

PREPOPEN

7

SQLForeignKeys(W)

8

SQLPrimaryKeys(W)

9

SQLStatistics(W)

10

SQLTablePrivileges(W)

11

SQLTables(W)

12

SQLFreeStmt

CLOSCMIT

13

SQLCloseCursor

14

SQLEndTran

CMITRLBK

15

SQLDisconnect

CMITDISC

16

SQLFreeHandle

CMIT

17

SQLSetConnectAttr(W)

18

SQLConnect(W)

CNCTDISC

19

SQLDriverConnect(W)

20

SQLBrowseConnect(W)

(f) 実行したCLI関数と出力されるコール種別の対応

実行したCLI関数と出力されるコール種別の対応を次の表に示します。

表10‒15 実行したCLI関数と出力されるコール種別の対応

項番

実行したCLI関数

出力されるコール種別

1

a_rdb_SQLPrepare()

PREP

2

a_rdb_SQLExecute()

OPENEXEC

3

a_rdb_SQLCloseCursor()

CLOS

4

a_rdb_SQLFetch()

FETC

5

a_rdb_SQLExecDirect()

EXDI

6

a_rdb_SQLEndTran()

CMITRLBK

7

a_rdb_SQLConnect()

CNCT

8

a_rdb_SQLDisconnect()

DISC

(3) クライアント定義情報

クライアント定義情報の出力例を次に示します。

■クライアント定義情報の出力例

[client definitions]
adb_clt_ap_name="SAMPLE"
adb_clt_fetch_size=1024
adb_clt_group_name="test_group"
adb_clt_sql_order_mode="ISO"
adb_clt_sql_parallel_exec="N"
adb_clt_sql_text_out="Y"
adb_clt_trn_access_mode="READ_WRITE"
adb_clt_trn_iso_lv="READ_COMMITTED"
adb_dbbuff_wrktbl_clt_blk_num=256
adb_sql_exe_hashflt_area_size=200
adb_sql_exe_hashgrp_area_size=4800
adb_sql_exe_hashtbl_area_size=2000
adb_sql_exe_max_rthd_num=0
adb_sql_prep_dec_div_rs_prior="FRACTIONAL_PART"
adb_sql_prep_delrsvd_use_srvdef="Y"

APの接続の場合は,そのAPに適用されているクライアント定義の情報が出力されます。コマンドの接続の場合は,クライアント定義情報は出力されません。

なお,クライアント定義情報に出力される各オペランドの値は,クライアント定義に指定した値ではなく,APに適用された値が出力されます。例えば,クライアント定義のadb_sql_exe_max_rthd_numオペランドの指定値が不正なため,HADBサーバが仮定する値に変更されている場合,クライアント定義の指定値ではなく,HADBサーバが仮定した値が出力されます。

メモ

次に示す場合にクライアント定義情報が出力されます。

  • コール種別がCNCTで,かつCNCTが正常終了したとき

  • adbchgsqltrc -sコマンドを実行して,SQLトレース情報を出力したあとの最初のトランザクションを開始したとき(トランザクションを開始したコネクションのクライアント定義情報が出力されます)

(4) コネクション状態に関する情報

コネクション状態に関する情報の出力例を次に示します。

■コネクション状態に関する情報の出力例(APの接続の場合)

[connection status]
client_type=AP(JDBC)
client_ip=127.0.0.1
connect_time=2015/07/31 21:54:41
client_process_id=0
connection_information=000010000000001-0000181584fb6700

■コネクション状態に関する情報の出力例(コマンドの接続の場合)

[connection status]
client_type=command(adbimport)
client_ip=127.0.0.1
connect_time=2015/07/31 16:10:37
client_process_id=30422
connection_information=000010000000003-000073b601e46700

コネクション状態に関する情報に出力される項目を次の表に示します。

表10‒16 コネクション状態に関する情報に出力される項目

項番

項目名

説明

1

client_type

HADBクライアントの種類が出力されます。

  • JDBCドライバからのアクセスの場合:AP(JDBC)

  • JDBCドライバ以外からのアクセスの場合:AP(C library)

  • コマンドの場合:command(コマンド名)

    (例)command(adbimport)

2

client_ip

HADBクライアントのIPアドレスが出力されます。

3

connect_time

コネクションを確立した時刻が出力されます。

4

client_process_id

HADBクライアントのプロセスIDが出力されます。

JDBCドライバを使用している場合は0が出力されます。

5

connection_information

コネクション情報(KFAA81000-Iメッセージのconnection informationに出力される情報)が出力されます。

メモ

次に示す場合にコネクション状態に関する情報が出力されます。

  • コール種別がCNCTで,かつCNCTが正常終了したとき

  • adbchgsqltrc -sコマンドを実行して,SQLトレース情報を出力したあとの最初のトランザクションを開始したとき(トランザクションを開始したコネクションのコネクション状態に関する情報が出力されます)

(5) 実行したSQL文とアクセスパス情報

実行したSQL文とアクセスパス情報の出力例を次に示します。

■実行したSQL文とアクセスパス情報の出力例

[SQL]
SELECT * FROM "T1" WHERE "C1"=? AND "C2"=? AND "C3"=?
 
[access path]
<<Tree View>>
 
     1 QUERY : 1
     2   SELECT STATEMENT
     3   +-TABLE SCAN(ADBUSER01.T1)
 
 
<<SQL Info >>
 
Version           : 03-01(Jul 31 2015 21:31:44)
Transaction ID    : 4342
Connection Number : 1
SQL Serial Number : 1
[説明]
  • [SQL]

    実行したSQL文が出力されます。

    ALTER USER文またはCREATE USER文のパスワード部分については,*が出力されます。

    SQL文中に印字できない特殊文字が含まれている場合でも,そのまま出力されます。

  • [access path]

    アクセスパス情報が出力されます。アクセスパス情報に出力される項目については,マニュアルHADB AP開発ガイドアクセスパスの見方(SQL文の実行計画の見方)を参照してください。

メモ

次に示す場合に,実行したSQL文とアクセスパス情報が出力されます。

  • コール種別がPREPの場合

  • コール種別がEXDIの場合

  • コール種別がSQLの場合

注※

アクセスパス情報は,PREPが正常終了したときに出力されます。PREPが正常終了しなかったときは,実行したSQL文だけが出力されます。

(6) ?パラメタの情報

?パラメタの情報の出力例を次に示します。

■?パラメタの情報の出力例

[param]
param_no type      len1  len2  data
-------- --------- ----- ----- ----
       1 int           8       1
       2 char          2       'ab'
       3 dec           7     3 1234.567

?パラメタの情報に出力される項目を次の表に示します。

表10‒17 ?パラメタの情報に出力される項目

項番

項目名

説明

1

param_no

SQL文中の?パラメタの通番が出力されます。

2

type

?パラメタのデータ型が出力されます。

3

len1

パラメタ長が出力されます。

4

len2

パラメタ長属性が出力されます。パラメタ長属性がない場合は出力されません。

パラメタ長およびパラメタ長属性については,マニュアルHADB AP開発ガイドa_rdb_SQLDescribeParams()(?パラメタの情報取得)を参照してください。

5

data

?パラメタにバインドされたデータが出力されます。

?パラメタの情報の出力形式を次の表に示します。

表10‒18 ?パラメタの情報の出力形式

項番

データ型

type

len1

len2

出力形式

1

INTEGER

int

8

なし

10進数形式

2

DECIMAL(m, n)※1

dec

m

n

10進数形式

3

NUMERIC(m, n)※1

4

SMALLINT

smallint

4

なし

10進数形式

5

DOUBLE PRECISION

double

8

なし

仮数E指数

仮数および指数は10進数形式で出力されます。

6

FLOAT

7

CHARACTER(n)

char

n

なし

'文字列形式'

8

VARCHAR(n)

varchar

n

なし

'文字列形式'

実長0の場合は,''と出力されます。

9

DATE

date

4

なし

日付データの既定の出力表現※2で出力されます。

10

TIME(p)※3

time

3+↑p÷2↑

p

時刻データの既定の出力表現※2で出力されます。

11

TIMESTAMP(p)※3

timestamp

7+↑p÷2↑

p

時刻印データの既定の出力表現※2で出力されます。

12

BINARY(n)

binary

n

なし

X'16進数値'

13

VARBINARY(n)

varbinary

n

なし

X'16進数値'

実長0の場合は,X''と出力されます。

14

ROW

row

行長

なし

X'16進数値'

(凡例)

mnp:正の整数

注※1

データ型がDECIMALまたはNUMERICの場合,len1として精度を取得します。また,len2として位取りを取得します。

注※2

既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

注※3

データ型がTIME型またはTIMESTAMP型の場合,len1としてデータ長を取得します。また,len2として小数秒の桁数を取得します。

■?パラメタの情報の出力規則
  • バインドされたデータがナル値の場合は,NULLが出力されます。

  • ?パラメタに印字できない特殊文字が含まれていても,そのまま出力されます。

  • NULL述語に?パラメタを単独で指定した場合,ナル値以外のデータをバインドしてもdata欄には何も出力されません。ナル値がバインドされた場合は,data欄にNULLが出力されます。

  • ?パラメタの値の一括転送を実施した場合,?パラメタセットごとにヘッダ(param_notypelen1len2data,および区切り線)が出力されて,データも出力されます。ただし,[param]は,1回の一括転送で1回だけ出力されます。

    ?パラメタの値の一括転送については,マニュアルHADB AP開発ガイド?パラメタの値の一括転送を参照してください。

メモ

次に示す条件をすべて満たす場合に?パラメタの情報が出力されます。

  • SQL文中に?パラメタが指定されている場合

  • コール種別がOPENEXEC,またはSQLの場合

(7) SQLパラレル実行機能に関する情報

SQLパラレル実行機能に関する情報の出力例を次に示します。

■SQLパラレル実行機能に関する情報の出力例

[parallel]
node_no sql_node_type
------- -------------
      3 MAIN
      1 SUB
      4 SUB
      6 SUB

SQLパラレル実行機能に関する情報に出力される項目を次の表に示します。

表10‒19 SQLパラレル実行機能に関する情報に出力される項目

項番

項目名

説明

1

node_no

SQLパラレル実行機能を適用した検索系SQLが実行されたノードのノード番号が出力されます。

2

sql_node_type

SQLパラレル実行機能を適用した検索系SQLが実行されたノードのSQLノード種別が出力されます。

  • MAIN:SQLメインノード

  • SUB:SQLサブノード

メモ

SQL文の実行時にSQLパラレル実行機能が適用され,かつ次に示すどちらかの条件を満たす場合に,SQLパラレル実行機能に関する情報が出力されます。

  • コール種別がOPENで,かつOPENが正常終了した場合

  • コール種別がSQLの場合

(8) トランザクションの情報

トランザクションの情報の出力例を次に示します。

■トランザクションの情報の出力例

[図データ]

トランザクションの情報に出力される項目を次の表に示します。

表10‒20 トランザクションの情報に出力される項目

項番

項目名

説明

1

tran_id

データベースを初期化したときからの通番であるトランザクションIDが出力されます。

2

start_time

トランザクションの開始時刻が出力されます。

3

end_time

トランザクションの終了時刻が出力されます。

4

exe_time(us)

トランザクションの実行時間がマイクロ秒単位で出力されます。トランザクションの終了時刻と開始時刻の差が出力されます。

5

trn_iso_lv

トランザクション隔離性水準が出力されます。

  • READ_COMMITTED:トランザクション隔離性水準がREAD COMMITTEDの場合に出力されます。

  • REPEATABLE_READ:トランザクション隔離性水準がREPEATABLE READの場合に出力されます。

6

trn_access_mode

トランザクションアクセスモードが出力されます。

  • READ_WRITE:トランザクションアクセスモードが読み書き可能モードの場合に出力されます。

  • READ_ONLY:トランザクションアクセスモードが読み取り専用モードの場合に出力されます。

7

sql_order_mode

文字データの並び替え順序が出力されます。

  • BYTE:文字データをバイトコード順に並び替えた場合に出力されます。

  • ISO:文字データをソートコード順に並び替えた場合に出力されます。

8

~

トランザクション情報の区切り線として,「~」が出力されます。

メモ

次に示す場合にトランザクションの情報が出力されます。

  • コール種別がCMITまたはRLBKの場合

  • 暗黙的なトランザクションの決着が発生した場合

注※

定義系SQL,TRUNCATE TABLE文,またはPURGE CHUNK文の実行が正常終了したときに暗黙的なコミットが実行されます。

また,SQL文のエラーが発生したときに,暗黙的なロールバックが実行されることがあります。その場合,メッセージログファイルにKFAA51001-Eメッセージが出力されます。

トランザクション実行中にコネクションを終了した場合も,暗黙的なコミットが実行されます。

(9) 認可識別子の情報

認可識別子の情報の出力例を次に示します。

■認可識別子の情報の出力例

コール種別がCNCTの場合
ADBUSER01 has been connected.
コール種別がDISCの場合
ADBUSER01 has been disconnected.
[説明]

下線部分には,APのコネクション確立時に指定した認可識別子が出力されます。

コマンドのコネクションの場合は,コマンドの-uオプションに指定した認可識別子が出力されます。HADBサーバに接続するコマンドであっても,-uオプションを指定しないコマンドの場合は,認可識別子の情報は出力されません。

メモ

次に示す場合に認可識別子の情報が出力されます。

  • コール種別がCNCTで,かつCNCTが正常終了した場合

  • コール種別がDISCで,かつDISCが正常終了した場合

(10) SQL文の統計情報

SQL文の統計情報の出力例を次に示します。情報量が多いため,2つに分けています。

■SQL文の統計情報の出力例(その1)

[図データ]

■SQL文の統計情報の出力例(その2)

[図データ]

[説明]

SQL文の統計情報に出力される項目は,adbstatコマンドのSQL文の統計情報に出力される項目と同じです。出力される項目については,マニュアルHADB コマンドリファレンスSQL文の統計情報で出力される項目を参照してください。

メモ

次に示す場合にSQL文の統計情報が出力されます。

  • コール種別がCLOSの場合(カーソルをクローズしないで文ハンドルを解放したり,トランザクションを決着したりした場合を含む)

  • コール種別がEXECEXDI,およびSQLの場合

(11) アクセスパスの統計情報

アクセスパスの統計情報の出力例および出力項目については,「10.11.3 アクセスパスの統計情報の出力例と出力項目」を参照してください。

(12) コネクションの確立または終了の区切り線

コネクションの確立または終了の区切り線として,「*」を255個出力します。

■コネクションの確立の区切り線の出力例(コール種別がCNCTの場合)

[図データ]

■コネクションの終了の区切り線の出力例(コール種別がDISCの場合)

[図データ]

メモ

次に示す場合に,コネクションの確立または終了の区切り線が出力されます。

  • コール種別がCNCTの場合

  • コール種別がDISCの場合で,かつDISCが正常終了した場合

(13) SQL文の基本情報

SQL文単位でSQLトレース情報を出力した場合,SQL文の基本情報が出力されます。SQL文の基本情報の出力例を次に示します。

■SQL文の基本情報の出力例

[図データ]

[説明]
  • con_id

    コネクションIDが出力されます。

  • con_num

    HADBサーバの開始後に割り振られるコネクション通番が出力されます。

  • stmt_hdl

    SQL文に割り当てられた文ハンドルが出力されます。

  • sql_serial_num

    コネクション確立後に割り振られるSQL文通番が出力されます。

メモ

次に示す情報が出力されるときにSQL文の基本情報が出力されます。

  • 実行したSQL文とアクセスパス情報

  • ?パラメタの情報

  • SQLパラレル実行機能に関する情報

上記の出力例は,実行したSQL文とアクセスパス情報と,SQL文の基本情報が出力された例です。