【发布时间】:2014-11-26 12:07:43
【问题描述】:
我有一个处理请求队列的 SQL 作业。它更新表 1。这是一个漫长的过程,大约需要 15 分钟。
与此同时,我的应用程序尝试从 Table1 中读取记录并将它们显示在网格中。相应的 get proc 已将 tran 隔离级别设置为 read uncommited。 当 SQL 作业运行时,我的应用程序在填充网格时总是超时。如果 SQL 作业没有运行,它工作正常。
我的 proc 具有适当的隔离级别,所以我不明白为什么它仍然超时。 想法?
这是我的 get proc 的样子:
CREATE PROCEDURE dbo.MyGetProc(...)
作为 开始 将事务隔离级别设置为未提交; 设置无计数;
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
...
结束
【问题讨论】:
-
你能发布一个超时代码的sn-p吗?通过这种方式,您将获得更强有力的答案。
-
我在原始线程中添加了 get proc code sn-p
标签: locking