gpt4 book ai didi

java - Hql查询优化-返回索引id或整个对象

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:11 25 4
gpt4 key购买 nike

我有一个带有 cca​​ 的数据库表。 327,000 个条目。 (SQL Server 2005,Hibernate 3)我必须生成一个查询该表 300 次的报告。 Hql 查询如下所示:

select hist from HistoryTable hist where year(hist.date) = :year and 
hist.user.userId = :userId and hist.entryType = :created

我需要等待 3 分钟才能生成报告,那么有没有办法优化此查询以使其运行得更快?我想返回 hist.id (因为这是一个主键,因此它被索引,我猜它查找起来更快)而不是整个 hist 对象,然后通过其 id 检索 History 对象?也许Hibernate也会做同样的事情,而这是没有必要的,然后就没什么可做的了。有什么想法吗?

最佳答案

我认为首先检索主键对您没有多大帮助。这只会增加您需要运行的查询数量(从而增加所需的时间)。

我宁愿看一下报告,看看是否可以减少查询数量。此外,如果您正在处理大量对象,我会考虑检索标量值而不是完整的对象实例(与从数据库检索普通值相比,Hibernate 会带来开销)。

我还要确保所有表都正确索引(测试查询并查看它们的执行情况)。

关于java - Hql查询优化-返回索引id或整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com