远程数据库上的Hibernate速度太慢(Postgresql)

时间:2016-09-19 16:01:03

标签: java hibernate

我正在使用休眠,但我遇到了性能问题! 当我在本地数据库上使用它时,它非常快,但在远程数据库上非常慢(和远程数据库,我的意思是在本地网络中)!!
为什么呢?!!

我知道你会说这可能是一个懒惰的加载问题但是我已经在一个实体(没有孩子)的简单选择上进行了测试但仍然很慢,请检查出来:

var result = driver.FindElement(By.XPath("//span[@id^='order-number-'")).Text;
var result = driver.FindElement(By.XPath("//div[@id='a-column a-span7']/h5")).Text;
var result = driver.FindElement(By.XPath("//div[@id='a-column a-span7']/span[@class='a-text-bold']")).Text; 

正如您可以看到一个简单的选择查询,这是我得到的结果:

本地:31毫秒
远程:356ms !!!!

这是我的配置文件:

public List<Employee> read() {
        List<Employee> objects = null;
        Transaction tx = null;
        try {
            tx = HibernateUtil.SESSION.beginTransaction();
            Long start = System.currentTimeMillis();
            objects = HibernateUtil.SESSION.createQuery("FROM Employee AS T ORDER BY T.id DESC").list();
            Long stop = System.currentTimeMillis();
            System.out.println( "Time: " + (stop - start) + "ms." );
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null)
                tx.rollback();
            e.printStackTrace();
        } 
        return objects;
    }

你能解释一下吗?

1 个答案:

答案 0 :(得分:0)

您需要配置连接池

理由:The anatomy of Connection Pooling

例如,您可以将C3P0与Postgresql一起使用:

此致