我在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;
答案 0 :(得分:3)
这不是连接超时,由于您的数据,它会在命令上超时。调整超时如下;
Command.CommandTimeout = 300;
有关详细信息:SqlCommand.CommandTimeout Property
我还建议您查看索引,看看是否可以优化查询。
答案 1 :(得分:-1)
您可以使用SqlCommand.CommandTimeout属性:
SqlCommand.CommandTimeout = 300;