【发布时间】:2018-01-05 07:07:33
【问题描述】:
我正在尝试使用来自具有内部联接的不同数据库中另一个表的数据来更新表中的数据。数据量很大,这导致执行时间超过 10 小时,这让我觉得我的查询可能有问题。
UPDATE [Database1]..[Table1]
SET [Database1]..[Table1].Table1BitValue =
CASE
WHEN ([Database2]..[Table2].Table2BitValue IS NULL
OR [Database2]..[Table2].Table2BitValue = 0)
THEN 0
ELSE 1
END
FROM [Database1]..[Table1]
INNER JOIN [Database2]..[Table2] ON [Database2]..[Table2].[Table2Id] = [Database1]..[Table1] .[Table1Id]
【问题讨论】:
-
你有执行计划吗,如果有,贴出来
-
我实际上并没有,因为它仍在运行
-
发布两个表的索引详情
-
在这种情况下,Table1BitValue 或 Table2BitValue 上似乎没有索引
-
两个表中的 id 都有索引
标签: sql-server database tsql join