Hibernate强制使用Index

时间:2012-07-13 03:04:25

标签: java hibernate hibernate-annotations

我有一个具有明确定义索引的表,我从

中理解
org.hiber....table(appliesTo="tableName", indexes={@Index(name=" ",columnNames=" "})})

是它创建了一个索引,现在这样做并提到实际的oracle DB索引中使用的列名给我最优的结果还是索引从未使用过?如何在HQL中显式使用索引?另外我如何确定索引正在被使用?

1 个答案:

答案 0 :(得分:0)

这取决于您使用的DBMS。例如,在Oracle中,如果使用基于成本的优化器,则无法控制通过SQL使用哪个索引。因此,你甚至不太可能通过HQL做任何与此相关的事情。

为了确保是否使用索引,它还取决于DBMS。通常我会通过Hibernate或其他JDBC日志工具(例如JdbcDsLog)将其转储到日志中来获取发布给DBMS的实际SQL,并查看SQL的执行计划