سرعت اجرای کوئری در sqlite
سلام
من یک کوئری برا دیتابیس اجرا میکنم
وقتی تعداد رکوردام یکم بالا میره (تقریبا 28000 تا) زمان زیادی طول میکشه که این کوئری اجرا بشه.
وقتی تست کردم متوجه شدم بیشتری زمان مال دستور movetofirst() هست.
آیا راه حلی برای رفع این مشکل هست؟
اینم کدهام
SQLiteDatabase sql = soh.getWritableDatabase();
Cursor cur = sql.rawQuery(Sqlcmd, BindArgs);
if(cur != null){
if(cur.moveToFirst()){
do{
......
}while(cur.moveToNext());
cur.close();
خط 4 بیشترین زمان رو میگیره. بقیه منطقی عمل میکنن.
نقل قول: سرعت اجرای کوئری در sqlite
سلام
با آرایه دو بعدی پیاده سازی کن شاید بهتر جواب بده چون که پوزیشن دقیق رو توی این حالت میتونید بهش بدین و فکر کنم سریع تر عمل کنه و پیچیدگی زمانی n^2 برای 28000 زیاد نیست.
اینم نمونه کد
for (int j = 0; j <cur.getCount() ; j++)
{
cur.moveToPosition(j);
for (int j2 = 0; j2 <cur.getColumnCount() ; j2++)
{
a[j][j2] = new String();
a[j][j2] = cu.getString(j2);
}
}