我有一個目前執行速度很慢的android sqlite數據庫。如何使用android sqlite和contentvalue批量替換
每次我從做更新,如果未能插入程序只使用替代(這是相同的REPLACE INTO也被稱爲插入或更換)
我現在想從這樣一個變化而變化的Improve INSERT-per-second performance of SQLite?意見同時更換,以做上百同時
static ArrayList<ContentValues> cvs= new ArrayList<ContentSystem>();
_dh.BeginTransaction(Table);
for(int i = 0; i < cvs.size(); ++i)
{
replace(ma, cvs.get(i), dh, Table, Key);
}
_dh.EndTransaction(Table);
到使用羣發系統
SQLiteStatement stmt = _dh.db.compileStatement("Replace into tablename(..) value (?,?)");
_dh.BeginTransaction(Table);
for(int i = 0; i < cvs.size(); ++i)
{
stmt.bindString(cvs.get(i));
}
stmt.execute();
_dh.EndTransaction(Table);
但我不underst和編譯的語句是什麼樣子 我也不明白,我會把在綁定字符串函數 - 我有存儲在contentvalue
從這個 http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html#execute()同樣的數據,如果執行這個SQL語句,它不是一個SELECT /插入/刪除/ UPDATE,例如CREATE/DROP表,視圖,觸發器,索引等等
它出現在執行呼叫不會與替換工作嗎?因爲它在做插入/更新 這是正確的嗎?
這裏是我的數據庫是如何建立,如何我使用的替代呼叫 http://sqlfiddle.com/#!7/b8af8/1
'dh'和'_dh'是否一樣?如果是的話,爲什麼有兩個對同一個數據庫的引用? –
如何實現'Begin' /'EndTransaction'?爲什麼他們需要一個表參數? –
dh,_dh同樣的事情,它的半僞代碼爲這個問題...開始和結束真的只是調用數據庫的實際功能,一些錯誤檢查和設置成功 - 只是沒有必要顯示手頭的問題 – morty346