导致锁定的视图的多个更新

时间:2014-11-25 10:13:58

标签: sql sql-server sql-server-2008 sql-server-2008-r2 deadlock

我们有一个10分钟的计划作业,每20分钟运行一次存储过程。存储过程中包含多个更新语句。此过程通常会导致锁定并影响系统性能。我注意到UPDATE语句正在视图上运行。

任何人都可以解释在表格上执行更新与在视图上执行更新之间有什么区别吗?

我只是认为更新视图可能会导致锁定。

还有任何避免锁定更新的建议。

由于

更新

示例UPDATE查询。存储过程有12个这样的更新查询。

UPDATE View1
SET col1 = CAST((dbo.gettimeremainingminutes(getdate(), dbo.f_UTCToLocalTime(col2)) / 1440) as INTEGER)
WHERE View2 IS NOT NULL 
  AND [Status] = 0 
  AND IsActive = 1

UPDATE View1
SET col1 = ISNULL(col1, 0) + CAST((dbo.function1(dbo.f_UTCToLocalTime(col2), getdate()) * 60) AS INTEGER),
    col3 = ISNULL(col3, 0) + CAST((dbo.function1(dbo.f_UTCToLocalTime(col2), getdate())) AS INTEGER)
WHERE [Status] = 0

0 个答案:

没有答案