0

我在 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中尝试时,它有一个错误

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

我可以增加连接超时吗?

nb 我用这个查询来连接数据

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

2 回答 2

3

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

Command.CommandTimeout = 300;

更多信息:SqlCommand.CommandTimeout 属性

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

于 2012-12-06T14:16:48.437 回答
-1

您可以使用 SqlCommand.CommandTimeout 属性:

SqlCommand.CommandTimeout = 300;

于 2012-12-06T14:17:36.287 回答