插入时间过长

时间:2013-03-11 09:23:39

标签: postgresql jpa ejb jboss7.x

我的设置是:JBOSS AS 7.1.1和PostGreSql

当表中没有或非常少(几百个)记录时,我的插入/更新完成得非常快。 但是当记录数量达到几千时,插入或更新需要很长时间。例如:插入记录需要1或2秒钟。

不确定问题出在哪里或从哪里开始。

我更新数据库的代码如下所示 -

public long updateRecord(long id, List<MyData> myDataList) {
    Event eventFromDB = findById(id).get(0);
    List<MyData> myDataListFromDB = eventFromDB.getMyData();
    for(MyData myData : myDataList) {
        myDataListFromDB.add(myData);
    }
    em.merge(eventFromDB);
    return myDataList.size();
}

我是一名新手并且根据我的知识设置了jboss。

我没有在JBOSS AS或PostGreSQL上进行任何配置设置。

JBOSS AS使用standalone-full.xml配置文件以独立模式运行。

提前致谢。

jbossql=# \d event_mydata
         Table "public.event_mydata"
 Column          |          Type          | Modifiers 
-----------------+------------------------+-----------
 event_id        | bigint                 | not null
 date_time       | character varying(255) | 
 secs_since_1970 | double precision       | 
 value           | real                   | 
Foreign-key constraints:
    "fkcf2bc134ec016855" FOREIGN KEY (event_id) REFERENCES event(id)

List是一个元素集合

@ElementCollection
private List<MyData> myData;
public List<MyData> getMyData() {
    return myData;
}

1 个答案:

答案 0 :(得分:1)

我认为问题在于,如果考虑填充大量数据,使用ElementCollection不是一个好主意。

related issue here

我重新构建了数据库,以便我现在使用一对多的双向关系。当子表中已有大量数据时,似乎有助于在子表中插入新条目。

希望它有所帮助。

感谢大家的期待和回应。