1

この関数を使用して、データを SQLite Android データベースに挿入します。

 public long insertAccount(String code,String name,int s3,int s4,String s5,String   s6,int s7,
        int s8,int s9,int s10,int s11,String s12,String s13,int s14,int s15,int s16) {

    //container and place in it the information you want inserted, updated, etc.
    ContentValues initialValues = new ContentValues();
    initialValues.put(Code, code);
    initialValues.put(Name,name);
    initialValues.put(Type, s3);
    initialValues.put(Level1, s4);
    initialValues.put(Father, s5);
    initialValues.put(ACCCurr,s6);
    initialValues.put(AccNat, s7);
    initialValues.put(LowLevel, s8);
    initialValues.put(DefNum, s9);
    initialValues.put(AccClass, s10);
    initialValues.put(SubClass, s11);
    initialValues.put(SSClass1, s12);
    initialValues.put(SSClass2, s13);
    initialValues.put(Stype1, s14);
    initialValues.put(Stype2, s15);
    initialValues.put(Stype3, s16);
    return db.insert(DATABASE_TABLE, null, initialValues);
}

しかし、約 70,000 行以上を挿入すると、これにはかなりの時間がかかります。データベースへの挿入プロセスを高速化するにはどうすればよいですか? また、挿入が完了したら、更新を適用するにはどうすればよいですか?

4

3 に答える 3

1

いくつかのオプション:

  1. データベースに事前入力します。「データベースを含むアプリケーションを出荷する」を参照してください

  2. トランザクションを使用して、I/O の待機時間を短縮します。たとえば、「Android SQLite データベース: 挿入が遅い」を参照してください。おそらく、70,000 行すべてを 1 つのトランザクションでラップすることはできませんが、トランザクションごとに 100..1000 のような挿入が可能であり、累積 I/O 待機時間が桁違いに削減されます。

于 2013-11-10T07:09:02.807 に答える