Мне нужно запросить три таблицы и отобразить данные для моего customerView.
Мой код выглядит следующим образом:
Log.v(TAG, System.CurrentTimeMillis())
int len = cursor.getCount();
Log.v(TAG, System.CurrentTimeMillis())
Product[] products = new Product[len];
int i = 0;
while(cursor.moveToNext()){
products[i] = new Product(cursor.getstring(0),.....);
}
Log.v(TAG, System.CurrentTimeMillis())
Запрос Sqlite:
String sql = "SELECT T1.PRODUCT_ID, CODE, SHORT_DESCRIPTION, CATEGORY_CODE,
BRAND_CODE, FORM_CODE, DENOMINATOR, T1.PIECE_PRICE, T1.lowest_piece_price,
T2.sku_type, T1.master_sku " +
"FROM CUSTOMER_PROD_LIST_ITEMS T1 INNER JOIN PRODUCT T2 ON
T1.PRODUCT_ID = T2.ID INNER JOIN PRODUCT_UOMS ON T2.ID =
PRODUCT_UOMS.PRODUCT_ID"+
"WHERE T1.VALID = 1 AND PRODUCT_UOMS.VALID = 1 AND
CUSTOMER_PRODUCT_LIST_ID = " + customer_pdtlist_ID + "
ORDER BY T1.PRODUCT_ID ASC";
После моего тестирования, если у нас в курсоре 1500 строк, нам придется потратить большечем 30 с, чтобы закончить эту строку (cursor.getcount ()).Если я удаляю эту строку, и использую ArrayList, чтобы иметь место.Я могу найти, что мы должны потратить более 30 с для Cursor.moveToNext ().
Итак, мой вопрос: почему первая операция с курсором должна занимать так много времени?и как мы решаем?
И у этого человека тот же вопрос Плохая реализация SQLite?Первый раз доступ к данным слишком медленный .но ответ не работает для меня.кстати, я нахожу дисплей такой же 1500rows в Iphone, просто нужно amost 3s.
заранее спасибо !!