【发布时间】:2011-11-05 02:10:27
【问题描述】:
我们最近增加了我们的 java 应用程序正在使用的数组之一的大小,现在性能已经显着下降。我们看到性能问题特别是由于通过休眠完成的数据库插入。我们正在对单个记录进行单次插入,并且需要一分钟才能完成插入!我想知道是否有一些配置不正确会导致这种情况以及是否有现成的解决方案。
谢谢,
艾略特
【问题讨论】:
-
如果我们看到一些代码,我们可能会提供帮助。
-
你使用的是什么数据库?
-
在这一分钟内进行一系列线程转储(jstack -l )并附加将记录插入数据库的线程的堆栈跟踪。
-
@svaor:线程转储在这里很可能无济于事。 Hibernate 和这里的问题处于更高的层次。 OP 很可能能够通过查看生成的查询并了解与表交互的成本有多大(基于大小、索引等)来追踪效率低下。
-
@cherouvim 我只是想检查一下。转储系列可以显示长时间活动的地方 - 休眠会话(例如一些刷新,脏对象搜索......),池(结帐/签入语句或连接),网络(一些数据库交互,数据库索引,阻塞会话......),当前的业务逻辑(一些计算或不整洁的事务机制)或者可能是其他东西。因为这个问题不够确定......
标签: java database performance hibernate