我有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();
}
答案 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