`
zmty123
  • 浏览: 8171 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
文章列表
项目中遇到一个并发性能的问题: 需要对3张表执行操作,3张表没有外键关系;执行操作都为查询--添加或更新。 最初设计为一个线程池,对3张表顺序操作。业务判断+数据库操作耗时在20-30毫秒; 后来我想3张表没什么关系,改成并行操作应该要效率要高点吧,于是就再写了2个相同的线程池,总共3个线程池,一个线程池执行一张表。 问题来了,我发现每一张表的业务操作耗时竟然比以前3张表业务判断+数据库操作时间还要高30-60毫秒; 我那个郁闷啊!并行居然比串行慢! 环境为32G内存、8CPU,hibernate+spring,声明式事务管理(自动提交),批量提交为100。 我想8CPU调度线程应 ...
事务传播:REQUIRED; 事务都是使用spring的声明式事务。 在项目中,要对一张表先进行查找,如果相同uri的数据存在就更新改数据,如果不存在就添加一条记录。 查操作 if(==1) {update} else {add} 很简单的一个需求,当在高并发的情况下(写了一个线程池,6个核心线程、最大10个),相同uri就会出现多条记录。 可能哥们会说没同步,最初为了性能我使用的lock,发现不行,后来干脆使用synchronized将整个操作(查、添加、更新)都同步到一个方法中,发现还是不行。 断点跟踪(空表),发现在多余6个线程并发的情况下,第一个个线程在执行同uri查 ...
我项目中要用到多数据源: 多个dataSource使用一个sessionFactory 在extends AbstractRoutingDataSource后能动态切换。   但是当我在配置多sessionFactory,我采用implements SessionFacoty接口   localSessionFactory   <bean id="localSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactor ...
Global site tag (gtag.js) - Google Analytics