Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate性能:EntityEntryContext.降级锁()_Java_Spring_Performance_Hibernate_Entitymanager - Fatal编程技术网

Java Hibernate性能:EntityEntryContext.降级锁()

Java Hibernate性能:EntityEntryContext.降级锁(),java,spring,performance,hibernate,entitymanager,Java,Spring,Performance,Hibernate,Entitymanager,我分析了一个慢速spring boot+hibernate应用程序,发现大约有20%-30%(随时间增加)的时间被 org.hibernate.engine.internal.EntityEntryContext.downgradeLocks() org.hibernate.engine.internal.EntityEntryContext.downgradeLocks() 313 28,821 org.hibernate.engine.internal.Statef

我分析了一个慢速spring boot+hibernate应用程序,发现大约有20%-30%(随时间增加)的时间被

org.hibernate.engine.internal.EntityEntryContext.downgradeLocks()   

org.hibernate.engine.internal.EntityEntryContext.downgradeLocks()   313 28,821
       org.hibernate.engine.internal.StatefulPersistenceContext.afterTransactionCompletion()    313 28,821
        org.hibernate.internal.SessionImpl.afterTransactionCompletion(boolean, boolean) 313 28,821
         org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.afterTransactionCompletion(boolean, boolean)    313 28,821
          org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.afterCompletionCallback(boolean) 313 28,821
            org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$200(JdbcResourceLocalTransactionCoordinatorImpl, boolean)   313 28,821
              org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit()    313 28,821
                 org.hibernate.engine.transaction.internal.TransactionImpl.commit() 313 28,821
                    org.hibernate.jpa.internal.TransactionImpl.commit() 313 28,821
                       org.springframework.orm.jpa.JpaTransactionManager.doCommit(DefaultTransactionStatus) 313 28,821  
                           org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(DefaultTransactionStatus)   313 28,821
                            org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(TransactionStatus)    313 28,821                         
                             org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport$TransactionInfo) 313 28,821                               
                               org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(Method, Class, TransactionAspectSupport$InvocationCallback) 313 28,821   
                                  org.springframework.transaction.interceptor.TransactionInterceptor.invoke(MethodInvocation)   313 28,821
                                     org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() 313 28,821

...
这个方法有什么作用

我认为这个方法可能会花费很多时间,因为有一个大型的实体管理器,但是经常调用实体管理器上的clear()根本没有帮助。我试图在两个方向上更改事务大小,但性能仍然很差

用例是根据数据库中的现有数据验证新数据

有没有人有什么想法或技巧来加速性能,并能向我解释一下该方法的作用

非常感谢