JPA MySQL指数走慢

时间:2016-04-13 14:32:02

标签: mysql performance jpa

在我的webapp上切换页面时遇到问题。 当我在页面之间切换(对我的数据库发出请求)时,响应时间会以指数方式变慢。请参阅例如chrome的输出,我在其中重复切换两页:

Chrome screendump

但它是特定于会话的。如果我打开另一个窗口/浏览器,问题就不存在了(尽管仍然在另一个会话中),直到我再次开始切换页面。

页面加载时,会调用:

    ActualTestGrabber actualTestGrabber = new ActualTestGrabber();
    concretetest = actualTestGrabber.getById(80);

对于"抓取者":

public Concretetest getById(int tf){

    EntityManager manager = getManager();
    TypedQuery<Concretetest> query = manager.createQuery("SELECT w FROM Concretetest w WHERE w.id=" +tf ,Concretetest.class);
    Concretetest result = query.getSingleResult();

    Close();
    return result;      
}

getManager并关闭:

@Transactional
public EntityManager getManager(){
    emfactory =  Persistence.createEntityManagerFactory( "DSLTestV4" );
    entitymanager = emfactory.
            createEntityManager( );
    entitymanager.getTransaction( ).begin( );
    return entitymanager;

}

@Transactional
public void Close(){
    entitymanager.getTransaction().commit();
    entitymanager.close();
    emfactory.close();
}

我做错了吗?为什么查询时间会出现指数恶化? 真的希望有人可以提供帮助。

编辑:

SQL Code for Concretetest

祝你好运 本杰明

0 个答案:

没有答案