我有一个进程(tableProcess)UI,当时有多人会分析。
用户工作流程:
1 - 用户访问执行SP的流程UI以返回可用的流程数量并打开更新的流程 我正在使用
FROM tableProcess AS process WITH (UPDLOCK, READPAST)
在同一个SP中,我使用当前日期更新所选行。
2 - 用户确认验证/使流程无效的操作。 使用SP选择和更新流程
问题我有时会锁定整个tableProcess。对此有何解决方法?
sp片段
SELECT TOP (1) @Column1,@Column2,@Column3
FROM tableProcess AS process WITH (UPDLOCK, READPAST)
WHERE (process.Date IS NULL)
ORDER BY process.AnalyseDate
BEGIN TRAN
UPDATE process
SET process.Date = GETDATE()
FROM tblProcess AS process
WHERE process.Column2 = @Column2;
COMMIT TRAN;
我在该表上有两个索引:
-Colunm1(pk)(Unique,Clustered)
-Column2(非唯一,非群集)