コストの高いクエリの一部が「SELECT * FROM ...」を実行するいくつかのSpring JDBCコードをリファクタリングしています-実際に必要な列のチェックを開始し、SELECT x 、 y FROM ..それら. しかし、ResultSetクラスを読んでみると、ほとんどのデータが遅延ロードされているように見えます。ResultSet.next() を実行すると、カーソルがデータベース (このアプリケーションでは Oracle 10g)に移動し、ResultSet.getXX()を実行すると、その列が取得されます。だから私の考えは、「SELECT *」を実行すると必要な列のみを取得しますが、実際にはパフォーマンスに影響はありません。私はこれについて正しく考えていますか?これがあなたを傷つけていると私が考えることができる唯一の場所は、クエリ結果をメモリに保存していて、より多くのメモリを使用する必要があるため、少数の行のみが選択されている場合ですが、実際にはクエリにヒットする列がある場合でも、これは当てはまりません。
考え?
注:これは標準のResultSetにのみ適用されます。 CachedResultSetの動作が異なることはわかっています。