【发布时间】:2019-10-31 08:15:26
【问题描述】:
这个查询需要很长时间才能更新我很想优化这个查询, 您的帮助将不胜感激。
DECLARE @text1 NVARCHAR(50) = N'test1'
DECLARE @text2 NVARCHAR(50) = N'test2'
DECLARE @text3 NVARCHAR(50) = N'test3'
DECLARE @text4 NVARCHAR(50) = N'test4'
DECLARE @text5 NVARCHAR(50) = N'test5'
UPDATE dbo.Session SET
text1 = CASE
WHEN text1 IS NOT NULL THEN @text1
ELSE text1 END ,
text2 = CASE
WHEN text2 IS NOT NULL THEN @text2
ELSE text2 END,
text3 = CASE
WHEN text3 IS NOT NULL THEN @text3
ELSE text3 END,
text4 = CASE
WHEN text4 IS NOT NULL THEN @text4
ELSE text4 END,
text5 = CASE
WHEN text5 IS NOT NULL THEN @text5
ELSE text5 END
【问题讨论】:
-
您的代码实际上看起来已经很优化了。你有什么性能问题吗?
-
添加一个
WHERE子句检查text1或text2等NOT NULL -
@Ahmed 。 . .我认为您查询中的逻辑是倒退的。为什么要用单个值替换 现有 数据?
标签: sql sql-server performance query-optimization tun