Я работаю на строительство андроида приложения, но я ничего, что мои операции SQL принимает навсегда завершитьAndroid SQLite занимает много времени, чтобы закончить
Я профилированное приложение, чтобы сузить ее к акту перемещение курсора в первую строку результирующего набора для простого запроса выбора (только возврат 1 строки, где я тестирую его, чтобы устранить размер результирующего набора как проблему.
Есть ли лучшие варианты для перемещения до начала набора результатов?
Редакция:
некоторый код:
public Cursor sqlQuery(String Sql)
{
Cursor c = database.rawQuery(Sql, null);
//start at the first spot
c.moveToFirst();
return c;
}
и вызывающий код
Cursor Slots = evedb.sqlQuery("SELECT attrib.value, "
+"attribtypes.attributename "
+"FROM dgmTypeAttribs AS attrib "
+"INNER JOIN invTypes AS type "
+"ON attrib.typeID = type._ID "
+"INNER JOIN dgmAttribs AS attribtypes "
+"ON attrib.attributeID = attribtypes._ID "
+"AND attribtypes.attributename = 'hiSlots' "
+"AND type.typeName = '" + shipname + "'");
это работает 3 раза и у меня есть время его приблизительно на 2 секунды для всего остального кода или через минуту с этим в .
Я также запускаю только инструкцию rawQuery без перехода к первому, а его принятие занимает 18 секунд, поэтому я сначала смотрю на наихудшую часть кода.
Не могли бы вы поделиться нами с кодом, который у вас есть, и посмотреть, не делаете ли вы что-то неправильно. Вы пытались запустить в консоли sqlite на adb запросы? – Pentium10
см. Мой комментарий ниже. Я попробовал несколько вариантов перемещения указателя, но эта конкретная операция на вновь созданном курсоре выдувает мое время загрузки от примерно 2 секунд для 3-х запросов более чем за минуту. – Philderbeast
добавлен код с более подробной информацией об уже выполненных тестах, чтобы найти источник моих проблем. – Philderbeast