まず、Java と Hibernate (setFech() メソッドと ScrollableResults クラスを使用) を使用しています。
2 番目に、数十億の行と 100 を超える列を持つテーブルを使用しています。そして、このテーブルは他の 2 つと結合します。したがって、単純な「select count(*)」には 1 分かかります。
以下のコードを使用して、数百万行とすべての列を返す選択の結果を取得しています。したがって、フェッチを使用することは必須です。
session = ((Session) manager.getDelegate()).getSessionFactory().openStatelessSession();
Query q = session.createSQLQuery(query).addEntity(MyEntity.class).setFetchSize(1000);
この最初の選択の後、検索の合計行数を知る必要がありますが、別の選択を行いたくなく (1 分かかります)、すべての scroll.next() を呼び出すことはできません。それは可能ですか?