我们正在开发使用OpenJPA1.1和Oracle DB作为后端存储一个持久层的应用程序。我将使用查询与子查询(见我的问题在解决JPA查询发现在连接列表中的最后一项)。

现在我的同事们在工作的话,这样的查询可能会导致性能问题,数据库充满了数以千计的客户日由几千个并发用户(这将是在生产实际)使用。

所以,我的问题是:是否有一个“最佳实践” 使用subselects在查询下这个情况?什么必须做这算不算?

有帮助吗?

解决方案

我首先证明,这是一个问题。你要加载与虚拟数据的数据库,看看你的查询如何执行的数据库变得很大。否则,你花时间优化的东西,可能不是一个问题。

一两件事要思考的问题。在我工作过的所有地方,那里的东西土崩瓦解不是成千上万的记录,但数以百万计。你已经有了这个系统,并能正常工作了一段时间,然后就开始放缓,即使你扔掉它更多的硬件。现在我工作的地方在他的历史表约会拥有约70万条记录回到1998年业绩上的一些疑问是可怕的结果和他们花费了大量的时间解决这些问题的。

但在某些时候,你真的要问。我们需要保持超过4岁多的数据在我们的交易系统?甚至4个月大?这个时间限制取决于您的业务需求,但如果你把你的交易系统仅是需要处理正在进行的工作数据...和归档到数据仓库中的历史记录。你会提高你的整体性能,因为机会是它只是偶尔需要查询旧数据,那么为什么你最近的数据保持下去吗?

如果您如何看待这个前面,你可以节省很多麻烦的长期性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top