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)

リストは要素のコレクションです

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

1 に答える 1

1

問題は、大量のデータを入力することを考えている場合、ElementCollection を使用することはあまり良い考えではないことだと思います。

関連する問題はこちら

データベースを再設計して、1 対多の双方向関係を使用するようにしました。子テーブルに既に大量のデータがある場合、子テーブルに新しいエントリを挿入するのに役立つようです。

それが誰かを助けることを願っています。

見て、応答してくれてありがとう。

于 2013-03-13T16:53:06.857 に答える