【发布时间】:2016-09-22 06:40:27
【问题描述】:
我需要一种方法来避免多次执行相同的查询。 从代码的角度来看,我不需要任何帮助。高级方法就可以了。
目前我在不同的类中执行相同的休眠查询,这些执行是同一请求的一部分。 截至目前,我正在使用请求级缓存来存储数据。后来我从缓存而不是数据库中获取这些数据以提高性能。但我想知道除了上述方法之外是否还有其他方法可以遵循。
如果您能在这方面提供帮助,那将非常有帮助。
谢谢
【问题讨论】:
-
我有点惊讶的是,重复的查询没有在大约 0 毫秒内被数据库本身返回。
-
我建议重构代码的相关部分,以便每个请求只执行一次有问题的查询。
-
@Joop Eggen .. 感谢您的回复。它是 Oracle 或 Hibernate 的现有功能吗?
-
不,数据库中的“开箱即用”(不完全正确)在某些情况下,重复查询通常几乎是即时的(DB2、Oracle 甚至 MySQL)。应该检查时间。我曾经在不需要的情况下“优化”了表中数据库数据的下拉列表。真的很沮丧,已经提出了一个很好的解决方案,然后发现它。
-
如果您还没有,请查看 Hibernate 中的查询缓存docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/…