【发布时间】:2013-02-13 20:28:37
【问题描述】:
以下休眠查询用于通过传入 catId 和 inventoryId 来获取 ProductCatalogue 记录列表
select prodcat from ProductCatalogue prodcat where prodcat.prodSec.prodId=:catId and prodcat.prodPlacedOrder.inventoryId=:inventoryId
表 ProductCatalogue 和 ProdPlacedOrder 是具有 30 万条以上记录的表。 inventoryId 是 prodOrder 表中的一列,prodPlacedOrder 是 prodOrder 表的扩展。
这个查询在执行时需要很多时间,而且单个休眠查询会触发许多复杂的 sql 查询。
关于可能是什么问题以及如何修改它以使查询执行得更快的任何建议?
【问题讨论】:
-
您是否检查过底层 SQL(即独立于休眠运行它?) - 您在表上有哪些索引?
-
您如何确定查询会触发许多复杂查询?会不会是以下几行使用将它们击退的结果?
-
@JoachimIsaksson 来自 show_sql 日志。不是这个特定的查询本身
标签: java sql performance hibernate