0

我的设置是: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;
}
4

1 回答 1

1

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

相关问题在这里

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

希望它可以帮助某人。

感谢大家的关注和回复。

于 2013-03-13T16:53:06.857 回答