【发布时间】:2012-11-06 12:09:55
【问题描述】:
我在我的应用程序中使用 Spring MVC + hibernate。应用服务器是 IBM WebSphere v7。在重新启动和重新启动应用程序后,Db2syscs 进程使 CPU 使用率达到 99%,并消耗大约 1,034,352K 的内存使用量。这大约需要 10~15 分钟。我尝试增加分配给 DB2 的堆大小,但没有任何区别。
编辑
这些是我在 spring 配置文件中的休眠属性。添加缓存、池属性会有影响吗?
<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.datasource">jdbc/logincfg</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory
</prop>
<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup
</prop>
【问题讨论】:
-
您的数据库大小是多少?对于一个合理大小的数据库来说,1GB 的数据库服务器内存似乎相当少。
-
会不会是长查询问题?缺少一些索引或类似的东西?
-
@Matthew Scharley:数据库没有那么大。数据库中有 9 个表。
-
@Alexandre Lavoie:我使用的是 hibernate,所以手工编写的查询很少。
-
当然,但是 Hibernate 不会在表中创建索引,对吧? (我从来没有使用过 Hibernate 来实际创建表)我将 Hibernate 与 MySQL 一起使用,并手动创建索引来优化连接和位置!
标签: java database hibernate spring-mvc db2