每次迭代SQL查询都会变慢?

无论如何要使这个SQL查询更快? 它在.sdf数据库中搜索匹配的单词。 数据按字母顺序排列。 目前搜索需要大约10-15秒,搜索的第一次迭代似乎相当快,但是每次迭代搜索都会变慢。 为什么是这样? 对不起,这是我第一次使用SQL。

private void Search_Database() //Searches SQL Database for matching words
{
    Possible_Words.Clear();
    using (var cn = new SqlCeConnection(@"Data Source=|DataDirectory|ResourceWordlist.sdf"))
    {
        cn.Open();
        using (var cmd = cn.CreateCommand())
        {
            string[] Final_Search_Array = (string[])Packaged_Search_Array.ToArray(typeof(string)); // Receives  and Unwraps Packaged Array
            int Search_Array_Index = Final_Search_Array.Length - 1;
            for (; Search_Array_Index != -1; Search_Array_Index = Search_Array_Index - 1)
            {
                switch (Final_Search_Array[Search_Array_Index].Length)
                {
                    case 2:
                        Search_Table = "[2 Letter Words]";
                        break;
                    case 3:
                        Search_Table = "[3 Letter Words]";
                        break;
                    case 4:
                        Search_Table = "[4 Letter Words]";
                        break;
                    case 5:
                        Search_Table = "[5 Letter Words]";
                        break;
                    case 6:
                        Search_Table = "[6 Letter Words]";
                        break;
                }
                cmd.CommandText = "Select * from " + Search_Table + " where [Melted] like '%" + Final_Search_Array[Search_Array_Index] + "%'";
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Possible_Words.Add(reader["Word"].ToString());
                    }
                }
            }
        }
        cn.Close();
    }
    FullList_PossibleWords.Add(Possible_Words);
}

一些技巧:

  • 而不是在查询中使用* ,请使用所有字段名称。

  • Melted字段上创建一个索引。

  • 在创建Connection对象和Command之外构建您的查询

  • 当你不需要代码时,打开连接

  • 如果你认为这个提示你的代码变得更快。

    链接地址: http://www.djcxy.com/p/62237.html

    上一篇: SQL Query gets slower with each iteration?

    下一篇: Realtime multiplayer game principles for TCP and Node.js