我是c#和sql server的新手。我正在使用SQL Server 2008,我的数据库中有126个表。
有7个事务表,插入/更新查询经常触发,因为我的应用程序有30-40个用户。
我在每个查询之前编写了BEGIN TRAN
,在查询结束时编写了COMMIT
。
现在很多次我收到错误' Timeout已过期......'当任何随机用户尝试打开表单或保存一些数据时。
如果触发器抛出错误,我在触发器中写了ROLLBACK
。
但我无法确定哪个表BEGIN TRAN
已经发生或哪个表已死锁。
我确保我的连接正确且已打开,然后我也收到此错误 我无法确定它的来源。
有没有人知道这个' Timeout到期的位置'错误即将到来,可以建议我出路吗?
答案 0 :(得分:0)
有没有人知道“Timeout expired”错误即将发生的地方,并且可以建议我一些出路。
可能的原因之一是事务无法获取某些资源(表,行,...)的锁定。 在这种情况下,您可以尝试增加LOCK_TIMEOUT或更改isolation level(如果可以接受)。
我建议您阅读this文章。