我有一个大约6GB的文本文件需要解析和持久化。所谓“解析”,就是读取文件中的一行(通常为2000个字符),从该行创建一个汽车对象,然后将其持久化。我使用生产者消费者模式来解析和持久化,并且想知道一次只持久化一个对象还是1000个(或其他任何数量)是否会对性能产生影响?
目前,我需要花费超过2小时才能完成所有持久化操作(300万行),这看起来对我来说太长了(或者我可能错了)。
目前我的做法如下:
在我进行任何设计更改之前,我想知道这个设计是否更好(或者不好),如果更好,那么cars.size()应该是多少?另外,开/关session是否被认为是昂贵的操作?
目前,我需要花费超过2小时才能完成所有持久化操作(300万行),这看起来对我来说太长了(或者我可能错了)。
目前我的做法如下:
public void persistCar(Car car) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}
在我进行任何设计更改之前,我想知道这个设计是否更好(或者不好),如果更好,那么cars.size()应该是多少?另外,开/关session是否被认为是昂贵的操作?
public void persistCars(List<Car> cars) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
for (Car car : cars)
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}