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

jdbcおよびoracleドライバーの操作中に結果セットが保存される場所

    デフォルトの行数(結果セット全体ではない)がローカルメモリにフェッチされます。フェッチされた行の最後の行に到達すると(たとえば、next()を実行して次の行にアクセスしようとすると)、結果にさらに行がある場合は、データベースに対して別のラウンドトリップ呼び出しが行われ、次の行をフェッチします行のバッチ。

    編集1:

    これを行うことで、結果セットが一度にフェッチしている行数を確認できます(構文を確認してください):

    rs.beforeFirst(); // will put cursor before the first row
    rs.last(); // will put cursor after the last line
    int noOfRows = rs.getRow(); // will give you the current row number
    

    編集2:

    ローカルメモリで通常より多くの行を取得したい場合は、 CachedRowSet 。これでも往復しますが、通常の結果セットよりも少なくなります。ただし、アプリケーションのパフォーマンスチェックを行うことを検討する必要があります。



    1. Oracle ORDER BYとROWNUMを正しく使用するにはどうすればよいですか?

    2. テーブル構造を新しいテーブルにコピーします

    3. SQL Server:プールされた接続間での分離レベルのリーク

    4. MySQLエラー-SQL構文にエラーがあります