我有一个使用 Hibernate 与 MsSQL 2005 服务器通信的 Java 应用程序,驱动程序是net.sourceforge.jtds 1.2.4.
一切正常,但性能不佳horrible,我怀疑索引未用于传递给它的查询,因为响应时间与表中的条目数成正比。
我编写了一个小型测试应用程序,它使用相同的驱动程序(jtds)但不使用 Hibernate,并且我已经能够重现糟糕的性能(或者我相信是这样)。当我使用准备好的语句时,我看到与使用 Hibernate 相同的较差性能(响应时间约为 1 秒),但当我不使用准备好的语句时,性能非常好(约 10 毫秒)。
我能够使用以下方法获得同样好的性能Hibernate executeSql
方法而不是Criteria
接口,但我想避免这种情况,因为我希望代码保持模块化,并且结果也不会转换为我的实体类。
有没有某种方法可以让 Hibernate 获得良好的性能,同时仍然使用与后端无关的方式进行查询并将结果转换为实体类对象?
您是否尝试过微软的专有驱动程序?你可以下载它。并显示了支持的配置的概述here http://blogs.msdn.com/b/jdbcteam/archive/2010/07/02/support-matrix-for-microsoft-sql-server-jdbc-driver.aspx。它可能会给你带来更好的性能。
SO 的相关帖子也可能对您有帮助:如何为sql server配置hibernate配置文件 https://stackoverflow.com/questions/3585544/how-to-configure-hibernate-config-file-for-sql-server
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)