0

我正在尝试从具有大量数据的表中获取数据。我正在使用 Java Webobject 和 EOmodel。当我尝试使用索引列获取时,我能够在不到 2 秒的时间内获得结果。但是,当我尝试使用任何其他列进行搜索时,它几乎需要 30 多秒。通过 EOmodel 命中的查询,直接使用 JDBC 独立命中,它在 1.5 秒内获取结果。

在 fetch 规范中设置任何标志以快速获取结果的任何建议。

提前致谢 :)

4

1 回答 1

1

与您的 JDBC 提取相比,EOF 提取生成的 SQL 有什么区别?

结果中有多少项?(如果有 10 个,数千个,那么时间可能是从原始 SQL 结果转换为 EOEnterpriseObjects)。

在您的 EOFetchSpecification 上尝试 setFetchesRawRows(true),如果您的结果集很大,这可能会给您提供与 JDBC 提取相当的结果。

最后,如果您在数据库上启用了缓存,并且您在 EOF 提取之后立即运行 JDBC 提取以进行比较,则 JDBC 提取可能只是从 SQL 缓存中获取缓存结果。

最重要的是,您在这里没有提供足够的信息让任何人都能够提供真正有针对性的建议。

于 2011-05-27T11:19:18.140 回答