大きなOracleテーブルのすべての行を読み取るために使用できる戦略1回のみ、ただしJDBCを使用して可能な限り高速&Java ?
各行に重要な量のデータがあることを考慮してください(一部の列の大きなテキストを含む30列)。
私が考えることができるいくつかの戦略は次のとおりです。
他にどのような戦略を使用できますか?
この質問の目的のために、行の処理が自由であると仮定します。
まず第一に、どれくらい速くする必要がありますか? 「時期尚早の最適化」ゾーンに入らないように注意する必要があります。
明確にするための最初の提案は、jdbc_batch_sizeを増やすことです。 Oracleデータベースが別のホスト上にある場合は、すべての提案でパフォーマンスが向上します。
ページングを実装してデータセットを複数のページに分割し、提案を使用できます
別の提案は、これが機能するかどうかはわかりませんが、Java Streams APIを使用してResultSetを処理することです。このためのコードはおそらくより簡潔なので、プラスになります。唯一の欠点は、ResultSetを並行して処理できない可能性があることです(洞察については、 this および this を参照してください)。