Hibernate选择计数本机查询速度慢

时间:2018-04-16 10:29:28

标签: java hibernate oracle10g

我有本机查询(伪代码): SELECT count(1)FROM my_table WHERE条件

当我在SQLDeveloper中执行它时,查询大约需要2秒钟。但是当它在我的应用程序中执行大约需要35秒。代码是:

String nativeSql = SELECT count(1) FROM my_table WHERE conditions;

Query query = entityManager.createNativeQuery(nativeSql);

int total = ((BigDecimal) query.getSingleResult()).intValue(); // Very Slow

persistence.xml配置如下:

    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="validate"/>
        <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
        <property name="hibernate.connection.charSet" value="UTF-8"/>
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.generate_statistics" value="true" />
    </properties>

统计结果如下:时间:35842ms,行数:1

该表共有567.885个寄存器,上面的查询返回134.736。当它是一个简单的查询时,我看不出性能不佳的问题。

0 个答案:

没有答案