Sqlite DB-запрос занимает много времени WP8

Я создаю приложение Windows Phone 8, используя sqlite.net, используя эту ссылку в качестве ссылки: –

http://developer.nokia.com/community/wiki/How_to_use_SQLite_in_Windows_Phone

В проекте есть база данных, которая высевается в изолированном хранилище. База данных содержит только одну таблицу, содержащую почти 26 тыс. Записей.

Я пытаюсь подключиться к этой базе данных в моем MainPage.xaml.cs следующим образом:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); using (SQLiteConnection db = new SQLiteConnection(App._dbPath)) { db.GetTableInfo("IWMCemeteries"); try { List<IWMCemeteries> cemeteriesList = db.Table<IWMCemeteries>().ToList<IWMCemeteries>(); MessageBox.Show("Number of elements in table is " + cemeteriesList.Count); } catch (Exception ex) { Debug.WriteLine(ex.Message); } } } 

Проблема в том, что для отображения диалогового окна сообщения требуется слишком много времени (более 25 секунд).

Я попробовал альтернативный метод, выполняющий необработанный запрос следующим образом:

 List<IWMCemeteries> cemeteries = db.Query<IWMCemeteries>("select * from IWMCemeteries"); MessageBox.Show("Number of elements in list is " + cemeteries.Count); 

Но это, кажется, занимает еще больше времени (почти 30 секунд).

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь?

Благодаря,

Раджив

    Здесь нет ничего плохого. Как заметили некоторые люди, с 26-килограммовыми рядами вы начинаете работать с интересной массой данных. Таким образом, в мобильных устройствах, работающих с базой данных «Lite», вы должны адаптировать свой запрос в зависимости от того, что вам действительно нужно:

    • Вы хотите количество строк, затем используйте SELECT COUNT (*)
    • Вы хотите отображать все строки в списке, а затем использовать подкачку или асинхронную загрузку (при прокрутке вниз), чтобы извлекать только 20 элементов каждый раз.

    В любых приложениях, но в основном на мобильных устройствах, вы должны учитывать объем данных, который движется.

    Таким образом, любой запрос будет мгновенным, и ваше приложение будет работать хорошо.

    В вашем запросе нет ничего плохого. Просто ограничьте данные, которые вы извлекаете из базы данных. Это мобильное устройство с ограниченной мощностью, а не полнофункциональный ПК.