1

10万件を超えるレコードを含むデータベースがあり、結果をバッチとして取得したいと考えています。SQLサーバーを使用していて、fetchsizeセットが50です。50レコードのみが取得され、次の50レコードのみが取得されるようにするにはどうすればよいですか。

P6SPYを使用してSQLをデバッグしようとしましたが、出力には、結果セット内のn個のレコードに対するn個のクエリが表示されます。生成されたSQLを調べて、fetchsizeが適用されていることを確認したいと思います。

助けてください。

4

2 に答える 2

0

P6SPYはアプリケーションレベルのツールだと思います。つまり、アプリケーションと元のJDBCドライバーの間にあるため、JDBCドライバーとデータベースサーバー間の相互作用をスパイすることはできません。

JDBCドライバーがfetchsizeを尊重していないと思われる場合は、wiresharkなどのネットワークパケットスニファを使用するか、データベースサーバー自体の要求ログを使用するか、ドライバーが公開するデバッグログを使用する必要があります。

于 2012-04-05T23:00:46.090 に答える
0

私が理解したことは次のとおりです。SQLサーバーのJDBCドライバーは、デフォルトですべてのレコードをメモリにフェッチします。接続URL文字列に追加selectMethod=cursorすると問題が解決し、バッチサイズが使用されるようになります。

于 2012-04-09T16:56:08.067 に答える