5

現在直面している問題の 1 つは、データベースから取得した大きな ResultSet のページネーションの処理です。

現在、SQL ストアド プロシージャの戻り値である行はjdbcTemplate.query100K から 300K の範囲を呼び出し、ページネーションはextractDataメソッド内で行われます。

ユーザーに表示されるページはわずか 20 行です。

これは非常に遅いです。 を使用してストアド プロシージャの結果からデータのページを取得する方法はありますかjdbcTemplate

4

2 に答える 2

3

あなたはこれを見ることができます

手始めに良い例です。

于 2013-01-23T05:39:17.423 に答える
2

JdbcTemplate にはページングのための特定の機能がないと思います。ただし、そうしても、コードの実行速度が向上しない場合があります。

通常、ユーザー向けページのサイズは 200 行を超えないため、100 ~ 300K 行のクエリは過剰に見え、多くのメモリを浪費します。

最初に、使用するページング戦略の種類を決定する必要があります。2 つの一般的な戦略は、最初の N ページをクエリして一時キャッシュに保存することです。または、1 ページ サイズ (例: 200 行) を満たすのに十分なだけクエリを実行し、ユーザーが要求した場合にのみ次の 200 行をクエリすることです。

また、速度低下の本当の理由を特定する必要があります。行サイズは 1 つの要因ですが、唯一の要因ではありません。スキーマ構造、インデックス、クエリ結合などを分析する必要があります。

通常の使用例では、最大 10000 ページをユーザーに提示できますが、一般的なユーザーがそれらすべてのページを閲覧することはまずありません。最初の 5 ~ 10 ページだけが重要である可能性があります。 、結果セットを少数に制限することはより理にかなっています

于 2013-01-23T04:55:19.383 に答える