我将大量行放入以前几乎为空的数据库表中,然后根据该表中的数据创建报表。虽然表被索引,但查询花费的时间太长了,我猜这是因为Hibernate每次都在为查询而不是使用索引进行全表扫描,因为它认为数据库表只包含几行。 / p>
如何为表创建Hibernate更新数据库统计信息,以便它可以构建合适的查询计划?
答案 0 :(得分:2)
Hibernate可以运行native SQL statements,这样你也可以运行analyze
:
Query analyze = session.createSQLQuery("analyze");
analyze.executeUpdate();
另请参阅有关native SQL statement execution的官方文档。