クエリの実行後、PostgreSQL JDBC ドライバーバージョン9.2-1002がサーバーから行をフェッチするのはいつですか? クエリの実行直後 (クライアント アプリケーションが を呼び出した後)、またはクライアント アプリケーションが結果セットから行を取得するためにPreparedStatement.executeQuery()
最初に呼び出した後に行をフェッチしますか? ResultSet.next()
これはステートメントのフェッチ サイズの値に依存しますか?
5292 次
3 に答える
2
デフォルトでは、ドライバはクエリのすべての結果を一度に収集します。これは大規模なデータ セットには不便な場合があるため、JDBC ドライバーはデータベース カーソルに基づいて ResultSet を作成し、少数の行のみをフェッチする手段を提供します。
少数の行が接続のクライアント側にキャッシュされ、使い果たされると、カーソルの位置を変更して次の行ブロックが取得されます。
さらにこれを読む
通常、libpq は SQL コマンドの結果全体を収集し、単一の PGresult としてアプリケーションに返します。これは、多数の行を返すコマンドでは機能しない可能性があります。このような場合、アプリケーションは単一行モードで PQsendQuery と PQgetResult を使用できます。このモードでは、サーバーから受信した結果行が一度に 1 行ずつアプリケーションに返されます。
于 2013-07-04T16:48:58.100 に答える