从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