我怎样才能在sql数据库中快速搜索

时间:2014-05-29 12:43:49

标签: c#

我有10000000行条形码的记录现在问题是操作需要大约20到30秒是否有任何解决方案,我可以节省我的时间提前谢谢 我的代码是

using (SqlConnection conn = new SqlConnection(Cos))
    {
        SqlCommand cmd = new SqlCommand("SELECT [barcode] FROM shoes", conn);

        conn.Open();
        SqlDataReader reader1 = cmd.ExecuteReader();
        while (reader1.Read())
        {
            textBox1.text = (reader1["barcode"].ToString());
        }
        conn.Close();

    }

2 个答案:

答案 0 :(得分:2)

正确索引数据并限制返回的结果。

返回10000000行总是需要时间在应用程序之间进行传输,如果这些机器实际上位于世界的不同地方会怎么样?

我的建议是分页数据并确保您的分页参数已被很好地编入索引。

ETA:正如其他人在评论中指出的那样,为什么要加载所有数据呢?您只会显示一个条形码(文本框中的最后一个条形码)。找到正确的条形码(并且只返回一行)并设置它会不会更容易?

答案 1 :(得分:1)

基本上,查询是错误的,您应该应用where条件或按条件排序前1条记录

如下所示

select top 1 columnname from table name order by 1 desc 

(1表示第一栏)

select columnname from table where keycolumn=contionvalue