SQLite Net PCL慢SELECT查询

时间:2019-02-07 17:23:48

标签: c# android sqlite xamarin.android

我在Xamarin.Android App上使用SQLite,当我选择表上的所有记录(大约44000)时,大约需要25000ms,因此,每秒大约要选择1700〜。

选择不应该更快吗?我尝试了一些不同的尝试,并设法将时间从27000ms减少到25000ms。

此处提供代码:

    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 :(得分:0)

离开通用类型至少是不寻常的。由于您已经知道要从哪个表进行查询,因此最好使用conn.Query<yourType>而不是conn.Query<T>
List<T>相同。
希望对您有所帮助。