[Seasar-user:21640] S2DaoがDBメタデータ取得時に発行していると思われるSQL文について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2013年 7月 4日 (木) 16:45:28 JST
seasar-userのみなさま
初めて投稿させていただきます。
株式会社アイ・ティ・フロンティアの西村と申します。
現在、以下のS2製品、APサーバ、DBを利用して、
JavaとLinuxシェルでバッチアプリケーションの開発を行っています。
<APサーバ>
Weblogic Server 10.3.6.0
<DB>
Oracle Database 11g Express Edition
<S2関連製品>
s2-dao-1.0.49
s2-extension-2.4.40
s2-framework-2.4.40
s2-tiger-2.4.39
アプリケーションのテスト中に、DBに対して発行されるSQL文を監視していたとこ
ろ、
S2Container初期化〜Dao実行の間に、
DBに対して以下2種類のSQL文が発行されていることを確認しました。
↓
++++++++++++++++++++++++++++++
・テーブルの制約情報を取得していると思われるSQL文
SELECT NULL AS table_cat,
c.owner AS table_schem,
c.table_name,
c.column_name,
c.position AS key_seq,
c.constraint_name AS pk_name
FROM all_cons_columns c, all_constraints k
WHERE k.constraint_type = 'P'
AND k.table_name = :1
AND k.owner like :2 escape '/'
AND k.constraint_name = c.constraint_name
AND k.table_name = c.table_name
AND k.owner = c.owner
ORDER BY column_name
・テーブルのカラム情報を取得していると思われるSQL文
SELECT NULL AS table_cat,
t.owner AS table_schem,
t.table_name AS table_name,
t.column_name AS column_name,
DECODE (t.data_type, 'CHAR', 1, 'VARCHAR2', 12, 'NUMBER', 3,
'LONG', -1, 'DATE', 91, 'RAW', -3, 'LONG RAW', -4,
'BLOB', 2004, 'CLOB', 2005, 'BFILE', -13, 'FLOAT', 6,
'TIMESTAMP(6)', 93, 'TIMESTAMP(6) WITH TIME ZONE',
-101,
'TIMESTAMP(6) WITH LOCAL TIME ZONE', -102,
'INTERVAL YEAR(2) TO MONTH', -103,
'INTERVAL DAY(2) TO SECOND(6)', -104,
'BINARY_FLOAT', 100, 'BINARY_DOUBLE', 101,
1111)
AS data_type,
t.data_type AS type_name,
DECODE (t.data_precision, null, t.data_length,
t.data_precision)
AS column_size,
0 AS buffer_length,
t.data_scale AS decimal_digits,
10 AS num_prec_radix,
DECODE (t.nullable, 'N', 0, 1) AS nullable,
NULL AS remarks,
t.data_default AS column_def,
0 AS sql_data_type,
0 AS sql_datetime_sub,
t.data_length AS char_octet_length,
t.column_id AS ordinal_position,
DECODE (t.nullable, 'N', 'NO', 'YES') AS is_nullable
FROM all_tab_columns t
WHERE t.owner LIKE :1 ESCAPE '/'
AND t.table_name LIKE :2 ESCAPE '/'
AND t.column_name LIKE :3 ESCAPE '/'
ORDER BY table_schem, table_name, ordinal_position
+++++++++++++++++++++++++++++++
下記URLの方法をもとに、JDBC接続時のデバッグログを出力し、
デバッグログとタイミング、アプリケーションが出力しているログのDao実行のタ
イミングを比較しました。
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/java.111/E05720-02/diagnose.htm
大きく分けて以下2種類のDaoがありますが、以下の種別に関係なく、
SQL文が発行されているDao、発行されていないDaoがあります。
・JavaBeansに格納された値からSQL文を自動生成するDao
・外部SQLファイルによってSQL文を発行するDao
本メールにて、以下の点についてご存知の方がいらっしゃいましたら、
どうかご教示いただきたく思います。
・当該のSQL文は、DB接続時のメタデータ取得のために、S2DaoとDBのドライバによ
って
発行されているという認識で問題ないか
・当該のSQL文の発行回数を見積もる計算式などはあるか
・当該のSQL文の発行タイミング、トリガー、その他規則性などはあるか
よろしくお願いします。
-------------------------------------------------------
株式会社 アイ・ティ・フロンティア
西村 勇人
E-mail nishimura_hayato @ itfrontier.co.jp
----------------------------------------------------
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20130704/102d75c7/attachment.html>
Seasar-user メーリングリストの案内