sql >> データベース >  >> RDS >> Oracle

SpringJDBCのサポートと大規模なデータセット

    Oracle JDBCドライバーは、setFetchSize()を適切にサポートしています。 java.sql.Statementのメソッド 、これにより、ドライバーが一度にフェッチする行数を制御できます。

    ただし、RowMapper Springで使用されているように、各行をメモリに読み込み、RowMapperを取得します。 それをオブジェクトに変換し、各行のオブジェクトを1つの大きなリストに格納します。結果セットが巨大な場合、JDBCが行データをフェッチする方法に関係なく、このリストは大きくなります。

    大きな結果セットを処理する必要がある場合、RowMapperはスケーラブルではありません。 RowCallbackHandlerの使用を検討してください。 代わりに、JdbcTemplateの対応するメソッドとともに。 RowCallbackHandler 結果の保存方法を指示するものではなく、保存するのはあなたに任されています。



    1. Oracleの存在しない場合の挿入ステートメント

    2. MySQLのトップ10のベストプラクティス

    3. メモリ内にフォームを生成する方法を学ぶ(はい、あなたはその権利を聞いた)

    4. クエリ文字列にもかかわらず、SQLCOUNTを使用すると-1を返すExecuteNonQuery