Я пытаюсь показать ListView, заполненный SimpleCursorAdapter.SimpleCursorAdapter получает курсор, заполненный выполнением rawQuery, например:
SELECT DISTINCT s.cod AS _id, s.name AS name FROM supplier s
INNER JOIN product p ON p.supplier = s.cod
INNER JOIN productprice pp ON pp.product = p.cod
WHERE
pp.category = 'w'
ORDER BY s.name
Когда я выполняю этот запрос непосредственно в базе, он возвращает 40 строк менее чем за 0,1 сек (обычно).Выполнение rawQuery в хранилище тоже очень быстро.Проблема в том, когда я делаю myListView.setAdapter(simpleCursorAdapter);
.Это займет более 2 минут!Итак, я изменил запрос на SELECT cod AS _id, name FROM supplier ORDER BY name
, и выполнение setAdapter
было довольно быстрым («обычные быстрые» hshs).
Мои вопросы: существует лимит JOIN, который я могу сделать вrawQuery для заполнения listView?Я делаю что-то неправильно?Должен ли я использовать query () в хранилище вместо rawQuery ()?
Извините за английский и заранее спасибо.