我有一个SQL作业,它处理一系列请求。它更新Table1。这是一个漫长的过程,需要15分钟。SQL锁定 - 超时问题
与此同时,我的应用程序尝试从Table1中读取记录并将它们显示在网格中。相应的get proc已将tran隔离级别设为read uncommited。 当SQL作业正在运行时,我的应用程序在填充网格时总是超时。如果SQL作业未运行,则可以正常工作。
我的过程有适当的隔离级别,所以我不明白它为什么仍然超时。 想法?
这里是我的GET PROC看起来像:
CREATE PROCEDURE dbo.MyGetProc(...)
AS BEGIN SET事务隔离级别读取未提交; SET NOCOUNT ON;
SELECT
...
FROM
(
SELECT
...
FROM
dbo.Table1
LEFT JOIN dbo.OtherTable1
WHERE ...
GROUP BY
...
) X
INNER JOIN dbo.OtherTable2
LEFT JOIN dbo.OtherTable3
LEFT JOIN dbo.OtherTable4
LEFT JOIN dbo.OtherTable5
LEFT JOIN dbo.OtherTable6
LEFT JOIN dbo.OtherTable6
ORDER BY
...
END
你能发布一段代码超时吗?这样你会得到更强的答案。 – 2014-10-01 15:36:20
我在原始线程中添加了proc代码片段 – GreenBinary 2014-10-01 15:46:31