【问题标题】:connected host has failed to respond, timeout expired已连接主机未能响应,超时已过期
【发布时间】:2012-12-06 14:14:30
【问题描述】:

我在 mysql 中尝试了这个查询,它工作正常,但查询花费了 103.5772 秒

SELECT doctor, 
       SUM(medicine) medicine, 
       sum(radiology) radiology, 
       sum(lab) lab, 
       sum(act) act
FROM ( SELECT max(doctor) doctor, 
  sum( if( pm = 'F', cost, 0.00 ) ) medicine,
  sum( if( pm = 'R', cost, 0.00 ) ) radiology,
  sum( if( pm = 'L', cost, 0.00 ) ) lab,
  sum( if( pm = 'P', cost, 0.00 ) ) act
  FROM my_table
  GROUP BY no
  )t
GROUP BY doctor

我的表数据量很大(近200万条数据)

当我在.net中尝试时,它有一个错误

超时。在完成之前超时时间已过 操作或服务器没有响应。

我可以增加连接超时吗?

n.b. 我用这个查询来连接数据

conn.ConnectionString = conection.getConnection();
MySqlDataAdapter da = new MySqlDataAdapter(query, conn);
da.Fill(ds);
return ds;

【问题讨论】:

    标签: c# .net mysql


    【解决方案1】:

    这不是连接超时,而是由于您的数据而导致命令超时。调整超时时间如下;

    Command.CommandTimeout = 300;
    

    欲了解更多信息:SqlCommand.CommandTimeout Property

    我还建议您查看索引,看看是否可以优化查询。

    【讨论】:

      【解决方案2】:

      您可以使用 SqlCommand.CommandTimeout 属性:

      SqlCommand.CommandTimeout = 300;

      【讨论】:

      • 这不是连接超时。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 2019-04-09
      • 2022-01-13
      • 2021-03-14
      • 1970-01-01
      • 2010-09-25
      相关资源
      最近更新 更多