從C#與EF,我打電話與ExecuteStoreCommand
超時當我調用存儲過程在SQL Server 2008
30秒長的存儲過程的程序啓動後,我有一個超時異常。
如何我可以配置超時?在服務器上還是在我的C#客戶端?
感謝
從C#與EF,我打電話與ExecuteStoreCommand
超時當我調用存儲過程在SQL Server 2008
30秒長的存儲過程的程序啓動後,我有一個超時異常。
如何我可以配置超時?在服務器上還是在我的C#客戶端?
感謝
你可以在下面的連接上設置的CommandTimeout,而是很多很多,好多想法是花時間和精力來診斷爲什麼超時在首位發生。
即使你通過你的正在增加的CommandTimeout「解決」的問題,你可能在你的數據庫引起其他阻塞問題。尋找阻止查詢或糟糕的查詢計劃,或設計糟糕的表和索引。
什麼你做什麼,比在存儲過程中固定SQL對方只是掩蓋了真正的問題(在SQL)。
您需要提出一個關於加速您的過程,發佈表格以及存儲過程代碼的問題,以便它可以一勞永逸地修復。
using (var conn = new SqlConnection(ConnectionStrings.toMyDB))
{
conn.Open();
using (var cmd = new SqlCommand("myProc", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 30; // Increase this to allow the proc longer to run
cmd.Parameters.AddWithValue("@Param", myParam);
cmd.ExecuteNonQuery();
}
}
帕特里斯Pezillier被詢問超時在EF,你的例子是ADO.NET – 2011-06-27 16:09:57
我怎麼能結果傳遞到DataSet?我現在正在使用這項技術。 – 2017-11-10 18:33:00
using (var context = new MyDbEntities())
{
context.CommandTimeout = 600;
context.MyLongRunningStoredProc();
}
使用索引解決我的問題,我發現與ExecuteStoreCommand執行存儲過程具有時間不一樣,如SQL。
可以使用SQL Management Studio中,以便找到你需要的指數,選擇您的存儲過程的SQL代碼,右擊「顯示估計的執行計劃」採取建議的指數。這應該優化您的存儲過程。
我知道,但100萬點的插入,我別無選擇...... – 2010-10-27 13:38:37
那將是擺在原來的職位非常重要的信息,你不覺得? – 2010-10-27 14:02:05
來自單個存儲過程調用的1百萬次插入?這是怎麼回事? – 2010-10-27 15:52:30