SQLite Net PCL медленный запрос SELECT - PullRequest
0 голосов
/ 07 февраля 2019

Я использую SQLite в приложении Xamarin.Android, и когда я выбираю все записи в таблице (около 44000), это занимает около 25000 мс, поэтому около 1700 ~ выборок в секунду.

mustn 'Чтобы выбрать быстрее, я попробовал несколько разных вещей, и мне удалось сократить время с 27000 мс до 25000 мс.

Вот код:

    public List<T> SelectAll() 
    {
        try
        {
            using (var conn = new SQLiteConnection(DATABASE_PATH, true))
            {
                Stopwatch w = new Stopwatch();
                w.Start();

                conn.BeginTransaction();
                var result = conn.Table<T>.ToList();
                conn.Commit();


                w.Stop();
                var millis = w.ElapsedMilliseconds;
                return result;
            }
        }
        catch (SQLiteException ex)
        {
            Log.Info(TAG + " - " + SUB_TAG, "There was an exeption selecting data from database: " + ex.Message);
            throw;
        }
    }

что-то не так с тем, как я пытаюсьвыбрать все строки в таблице?

Я пытался использовать conn.Table (). ToList (), но это было примерно то же самое, только разница в 100 мс

1 Ответ

0 голосов
/ 07 февраля 2019

По крайней мере, необычно оставлять общий тип.Поскольку вы уже знаете, из какой таблицы вы запрашиваете, было бы лучше использовать conn.Query<yourType> вместо conn.Query<T>.То же самое для List<T>.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...