连接主机无法响应,超时已过期

时间:2012-12-06 14:14:31

标签: c# .net mysql

我在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;

2 个答案:

答案 0 :(得分:3)

这不是连接超时,由于您的数据,它会在命令上超时。调整超时如下;

Command.CommandTimeout = 300;

有关详细信息:SqlCommand.CommandTimeout Property

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

答案 1 :(得分:-1)

您可以使用SqlCommand.CommandTimeout属性:

SqlCommand.CommandTimeout = 300;