0

SQL ステートメントによって返されるデータセットのサイズをバイト単位で知ることは可能ですか?

クエリ自体からデータのサイズを取得できればいいのですが。SQL Plus を使用するようなものを見つけましたが、Java コードでは使用できませんでした。

私はそれをJavaで行う方法があるかもしれないことを知っています。

前もって感謝します。

4

2 に答える 2

2

ドキュメント

オブジェクトは、現在のResultSetデータ行を指すカーソルを維持します。最初、カーソルは最初の行の前に置かれます。nextメソッドはカーソルを次の行に移動し、ResultSetオブジェクトに行がなくなるとfalseを返すため、whileループで使用して結果セットを反復処理できます。

ResultSetはコレクションではなく、行単位でデータを取得するために使用されているカーソルの抽象化にすぎません。

では、正確には何が必要ですか?結果を保存するために必要なメモリの量は?データベース内のデータのサイズは?...?なぜそれがいいのでしょうか?

いつでも実行できSELECT COUNT(*) FROM、行の特定の平均サイズを使用して結果のサイズを見積もります...を使用する代わりにSELECT COUNT(*)、より複雑な方法を使用できます。最後の要素に移動してResultSet.last()、行番号を取得しますResultSet.getRow()

于 2012-04-18T07:44:09.740 に答える
1

私はそれをJavaで行う方法があるかもしれないことを知っています、誰かが私にそれを行う方法を教えてもらえますか?

答えは、これを行う簡単な方法はないということだと確信しています。

JDBC抽象化は、データベースドライバーの実装の詳細をユーザーから隠し、結果セットのエンコードに使用されるバイト数は、ドライバー固有のものです。

結果セットがJavaヒープに具体化されると、理論的にはそのサイズを見つけることができます。しかし実際には、結果セット内のすべてのヒープノードをトラバースする必要があります...これは単純な問題ではありません。


COUNT()メソッドはクエリからの行数を提供しますが、それをバイトに変換する方法はありますか?

一言で言えば、いいえ。理論的にもそうではありません。

于 2012-04-18T07:46:01.310 に答える