OpenJPA 在 FetchPlan 中提供了一些参数。(http://openjpa.apache.org/builds/1.2.0/apidocs/org/apache/openjpa/persistence/FetchPlan.html) 我被困在其中之一,FetchBatchSize。希望有人可以分享他们的经验。
这是场景,假设我要从数据库中选择多达 1000 条记录(MS-SQL) 1. 如果我将 FetchBatchSize 保留为其默认值 -1,则返回 1000 条记录需要大约 20 秒;
如果我将 FetchBatchSize 设置为 100,则时间成本会显着降低到不到 2 秒,这很好,但如果我尝试只获取 50 条记录,这比 FetchBatchSize 100 少,则需要更长的时间(在我的测试中为 50 秒)这是不可接受的。
好的,所以,我猜如果 FetchBatchSize 超过用户想要的数量,则需要更多时间。我可以根据用户设置的计数在运行时更改 FetchBatchSize。你想要 1000,我将 FetchBatchSize 设置为 1000,你想要 100,我将其设置为 50,但是如果用户只需要几条记录怎么办?我也将 FetchBatchSize 设置为 2?
所以我的问题是,当 maxResultCount 是可变的时,如何选择合适的 FetchBatchSize?如果 openJPA 文档中有任何 DEFAULT 值(例如 20)适用于大多数场景?或者建议在运行时更改它。
任何评论表示赞赏。谢谢!