データベース抽象化ライブラリの 11 の異なる RBDMS に対して実行される統合テストでは、スキーマやデータを頻繁にリセットする必要があります。つまり、ほとんどのテスト ケースに対して多くのステートメントを実行します。
スキーマのリセットは、テスト スイートの開始時にのみ必要です。例えば:
DROP VIEW
DROP TABLE
DROP SEQUENCE
DROP PROCEDURE
...
CREATE TABLE
...
データのリセットは、データを書き込むテストにのみ必要です。例えば:
DROP SEQUENCE
DELETE FROM TABLE ...
CREATE SEQUENCE
INSERT INTO TABLE ...
読み取り専用テストは、リセットが不要なため、非常に高速です。直感的に、SQL ファイルをメモリに読み込み、これを使用してすべてのステートメントを実行します。
// No bind variables, all hard parses
// Bind variables won't help much, though as the "hard-parse-reduction" isn't very big.
stmt = connection.createStatement();
stmt.execute(sql);
一部のシステムでは、これは非常に遅いです。JDBCでこれを行うより良い方法はありますか? それとも、これが遅くなる可能性があるという事実を受け入れる必要がありますか...?