sqliteで一度に500件以上のレコードを保存しようとしています。これまでに書いたコードを以下に示します
メソッド名 closeDatabase は、データベースの開いている接続をすべて閉じます。変数 ContactID は、アドレス帳に存在する人々の ContactID が取り込まれた配列に他なりません。
sqlite3_exec(databaseRefObj, "BEGIN TRANSACTION", 0, 0, 0);
for (NSString *contactID の contactIDstr)
{
const char *insertintoGropsMember = "ここにクエリを挿入";
NSString *groupIDstr = [NSString stringWithFormat:@"%d",grpID];
[セルフクローズデータベース];
if(sqlite3_prepare_v2(databaseRefObj, insertintoGropsMember, -1, &sqlstatement, NULL)==SQLITE_OK)
{
sqlite3_bind_text(sqlstatement, 1, [groupIDstr UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(sqlstatement, 2, [contactIDstr UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_step(sqlstatement);
}
そうしないと
{
成功フラグ = いいえ;
}
sqlite3_finalize(sqlstatement);
sqlite3_close(databaseRefObj);
}
sqlite3_exec(databaseRefObj, "END TRANSACTION", 0, 0, 0);
ここではデータ挿入のプロセスが非常に遅いため、どこが間違っているのか、または sqlite のパフォーマンスを最適化するためにどのような手順に従うべきかを知りたいです。
挿入を実行したい列には、いかなる種類のインデックスも使用していないことに注意してください。