2012-12-06 85 views
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 

我的表中有大量數據(近2萬條數據)

當我嘗試在.NET中,他有一個錯誤

超時過期。在完成 操作或服務器沒有響應之前已經超時。

我可以增加連接超時嗎?

n.b. 我用這個查詢數據

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

回答

3

這是不是一個連接超時,它是在命令超時連接因您的數據。如下調整超時時間;

Command.CommandTimeout = 300; 

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

我也建議你看看你的索引,看看是否可以優化查詢。

-1

你可以用戶SqlCommand.CommandTimeout物業:

SqlCommand.CommandTimeout = 300;

+0

這不是一個連接超時。 – ChrisBint

+0

對不起,沒讀完整個問題......我的不好 –

相關問題