0

非常に大きなデータがあるテーブルからデータをフェッチしようとしています。私はJavaWebobjectとEOmodelを使用しています。インデックス付きの列でフェッチしようとしている間、2秒未満で結果を取得できます。しかし、他の列で検索しようとすると、ほぼ30秒以上かかります。EOmodelを介してヒットしているクエリは、JDBCスタンドアロンで直接ヒットしており、1.5秒で結果をフェッチします。

結果を高速にフェッチするために、フェッチ仕様などにフラグを設定するための提案。

前もって感謝します :)

4

1 に答える 1

1

JDBCフェッチと比較してEOFフェッチによって生成されたSQLの違いは何ですか?

結果にはいくつのアイテムがありますか?(数万の場合、時間は生のSQL結果からEOEnterpriseObjectsに変換されている可能性があります)。

EOFetchSpecificationでsetFetchesRawRows(true)を試してください。結果セットが大きい場合は、JDBCフェッチと同等の結果が得られる可能性があります。

最後に、データベースでキャッシュを有効にしていて、比較のためにEOFフェッチの直後にJDBCフェッチを実行した場合、JDBCフェッチはSQLキャッシュからキャッシュされた結果を取得している可能性があります。

結論として、あなたはここで誰もが本当に的を絞ったアドバイスを提供できるようにするのに十分な情報を提供していません。

于 2011-05-27T11:19:18.140 に答える