大型sql Select超时

本文关键字:超时 Select sql 大型 | 更新日期: 2023-09-27 18:19:54

避免大型sql select语句超时的最佳方法是什么?

List<int> klienter = FundneKlienter.Keys.ToList();
if (klienter.Count > 0)
{
    Dictionary<int, String> klientNavne = new Dictionary<int, string>(klienter.Count);
    String sql = "SELECT [0],[1] FROM [Tabel] WHERE [0] IN " + klienter.ToSqlList();
    using (SqlCommand cmd = new SqlCommand(sql, _connection))
    using (SqlDataReader sr = cmd.ExecuteReader())
        if (sr.HasRows)
            while (sr.Read())
                klientNavne.Add(int.Parse(sr["0"].ToString()), sr["1"].ToString());

这个"klinter"列表可以包含多达700万个ID,这些ID都是4-5个数字集长。

优化此查询的最佳方法是什么?

我在40.000+后超时??我是大型SQL语句的新手。

如果你需要更多的代码来帮助我,请告诉我。

大型sql Select超时

避免超时问题的一种方法是添加:

SqlCommand.CommandTimeout = 0;

MSDN说:

值为0表示没有限制(尝试执行命令将无限期等待)。

Rahul上面的回答很好。。。您也可以选择查询-考虑索引等。