sinat_21697575 2017-08-30 03:21
浏览 429
已结题

mysql getHibernateTemplate().save 执行很慢

处理描述
1.主处理
@Transactional(rollbackFor = Exception.class)
public String saveRecord(Record mRecord) {
try {
User user = userDao.load(mRecord.getUser().getId());
mRecord.setUser(user);
mRecord.setType(mRecord.getType());
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
mRecord.setAnswerDatetime(timestamp);
mRecord.setUpdateUserId(mRecord.getUser().getId());
mRecord.setUpdateDatetime(timestamp);
mRecord.setCreateUserId(mRecord.getUser().getId());
mRecord.setCreateDatetime(timestamp);
recordDao.save(mRecord);
return "SUCCESS";
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw e;
}
}
2.save处理
public ID save(T t) throws DataAccessException {
if (t != null) {
if (t instanceof UpdateInfo) {
Manageable userInfo = Authenticator.loadActiveUser().getUserInfo();
if (userInfo != null) {
UpdateInfo u = (UpdateInfo)t;
Timestamp systime = new Timestamp(System.currentTimeMillis());
u.setUpdateUserId(userInfo.getId());
u.setUpdateDatetime(systime);
if (u.getCreateDatetime() == null) {
u.setCreateUserId(userInfo.getId());
u.setCreateDatetime(systime);
}
} else {
UpdateInfo u = (UpdateInfo)t;
Timestamp systime = new Timestamp(System.currentTimeMillis());
u.setUpdateDatetime(systime);
}
}
return (ID)getHibernateTemplate().save(t);
}
return null;
}

问题点描述
return (ID)getHibernateTemplate().save(t);
这个处理花了十几分钟才结束。

log日志
1.接受到请求2017/08/30 09:02:23.763 INFO ControllerInterceptor creatRecord START 
2.数据库record的最终的更新时间是 2017/08/30 09:02:24
3.record表的id是从seq表中取得的
 Wed Aug 30 09:17:01 JST 2017
 Hibernate: select seq_value fromsequences where seq_key = 'record_id' for update
 Hibernate: update sequences set seq_value = ? where seq_value = ? and seq_key = 'record_id'
 Hibernate: insert into `records` (answer_datetime, answer_result, confirm_date, confirm_hour, confirm_minute, create_datetime, create_user_id, type, update_datetime, update_user_id, user_id, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

根据上述log推断return (ID)getHibernateTemplate().save(t);处理花了十几分钟。
补充:
个人开发环境,测试环境,staging环境都没有问题,只有在正式服务器上会有这个问题。
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 CSS实现渐隐虚线边框
    • ¥15 thinkphp6配合social login单点登录问题
    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题