我有一个处理我大学打印机的活动。打印机可以通过互联网下载,然后存储在SQLite数据库中。问题是,有大约500个数据库条目必须存储它们,这与我的代码非常耗时(在Google Nexus S上大约30秒)。我的代码是这样的:
printerDB = new PrinterListOpenHelper(this);
SQLiteDatabase db = printerDB.getWritableDatabase();
db.execSQL("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');");
db.execSQL("INSERT INTO destination (id, destination) VALUES(2,'BSAD152');");
...
接下来是约。 500个相似的行。我也尝试用一个
来做db.rawQuerry("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');
INSERT INTO destination (id, destination) VALUES(2,'BSAD152');.......");
但实际上只执行了第一个INSERT语句。
是否有人知道如何提高效率?或Android数据库真的那么慢?
非常感谢你的帮助! 西蒙
答案 0 :(得分:17)
如果将它们放入交易中,它会更好吗?
BEGIN TRANSACTION
INSERT INTO destination (id, destination) VALUES(1,'BSAC240');
INSERT INTO destination (id, destination) VALUES(2,'BSAD152');
END TRANSACTION
甚至(更新后的评论)
db.beginTransaction()
try {
db.execSQL("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');");
db.execSQL("INSERT INTO destination (id, destination) VALUES(2,'BSAD152');");
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}