0

我有一个具有明确索引的表,我从中了解

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

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

4

1 回答 1

0

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

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

于 2012-07-13T03:24:09.397 回答