0

同样,我正在创建此线程以查看是否有人有相同的问题,或者是否有人知道如何提高性能。让我先解释一下场景:我有一个名为 Product 的 JDO 实体。在该产品中,我有另一个实体的字段,一个简单的字段(示例类型:长 ID、字符串名称、字符串值)和 1 个日期。我创建了 10000 个产品对象,但是当我尝试使用日期查询产品时,性能很好,但是如果我添加 type.id == 12,那么性能会从 100 毫秒下降到 30 秒......如果我没有一个 Type 对象在 Product 上放了一个很长的 typeId,那么同样的查询也很快......我担心的是可扩展性,我应该展平结构并使用未真正连接但需要额外应用程序检索的 id,还是有办法提高 Product.Type 查询的性能?非常感谢您提前。

我已经尝试定义 fetchGroups,但它们并没有真正起作用......

我实际上想做的是通过产品上的 ID 进行一种映射,但我无法使用嵌入式注释来做到这一点......

所以,让我解释一下:我有一个名为 Reading 的类(一个 Date timeStamp 和一个 Product p)。这是在做一个查询。如果过滤器是这样的:

String filter = "timeStamp > fromDate && timeStamp < toDate";

如果我这样做,查询将在 100 毫秒内执行

String filter = "timeStamp > fromDate && timeStamp < toDate && prod.id == '941'"

例如,这需要 30 秒......我已经看过日志,并且没有查询他只从缓存中读取的产品,如果我添加产品的子句,他似乎会获取所有对象并开始比较我想象的值...我真的不知道该怎么做,也许我应该断开所有这些类并开始在 Reading 类上使用 String productID ,然后一切又开始变快了...但实际上,连接不是在那里,它将在应用层中实现......再次感谢......有什么建议吗?

生成的查询是这样的: SELECT FROM core.jdo.model.Readings WHERE timeStamp > fromDate && timeStamp < toDate && EAN.EAN == '002' PARAMETERS java.util.Date fromDate, java.util.Date toDate import java .util.日期

4

0 回答 0