首页 文章

Spring JDBC vs JDBC

提问于
浏览
6

我一直在尝试使用spring 3.0 SimpleJdbcTemplate,它需要5分钟来插入1500条记录,而它需要几秒钟 . 使用直接JDBC插入 . 不确定我做错了什么 .

3 回答

  • 6

    一些值得检查的事情:

    • 开销可能是Spring在应用程序级别管理的事务 . 查看您正在使用的事务管理器类型(查找名为 transactionManager 的bean) . 如果您正在使用JTA,那么使用JDBC快速的瓶颈似乎并不是数据库 .

    • 根据您的应用程序使用该事务的方式,它可能会在完成所有1500个请求和提交之前将所有内容保存在内存中 . 你是否看到内存使用量有很大差异(Spring应该高很多)?

    • 在任何一种情况下,您使用什么类型的数据库连接池?

    快速了解您的应用的方式:

    获取 pid - "jps -l"

    内存: jmap -histo PID (检查是否存在某种形式的内存泄漏)

    检查引擎盖下发生了什么: jstack PID (查找慢速或递归方法调用)

  • 1

    如何使用

    jdbcTemplate.batchUpdate(new String[]{sql});
    
  • -2

    如果您正在构建批处理,请考虑使用具有适当块大小设置的Spring批处理_ JdbcBatchItemWriter ,这将在不到一秒的时间内加载这1500条记录 .

相关问题