SQL 服务器查询 - 哪个性能更好?
SQL Server Query - Which is better in performance?
我认为查询 1 比查询 2 更具可读性,但我想知道它们在性能方面是否存在差异?
查询 1
UPDATE table_1
SET col_1 =
CASE WHEN table_1.col_pk IS NULL THEN value1
ELSE value2
END
FROM table_1
LEFT JOIN table_2 ON table_1.col_pk = table_2.col_pk
或
查询 2
UPDATE table_1
SET col_1 = value1
FROM table_1
LEFT JOIN table_2 ON table_1.col_pk = table_2.col_pk
WHERE table_1.col_pk IS NULL
UPDATE table_1
SET col_1 = value2
FROM table_1
INNER JOIN table_2 ON table_1.col_pk = table_2.col_pk
第一个查询可能会有更好的性能,因为它只需要 table_1
和 table_2
.
的单次扫描
我认为查询 1 比查询 2 更具可读性,但我想知道它们在性能方面是否存在差异?
查询 1
UPDATE table_1
SET col_1 =
CASE WHEN table_1.col_pk IS NULL THEN value1
ELSE value2
END
FROM table_1
LEFT JOIN table_2 ON table_1.col_pk = table_2.col_pk
或
查询 2
UPDATE table_1
SET col_1 = value1
FROM table_1
LEFT JOIN table_2 ON table_1.col_pk = table_2.col_pk
WHERE table_1.col_pk IS NULL
UPDATE table_1
SET col_1 = value2
FROM table_1
INNER JOIN table_2 ON table_1.col_pk = table_2.col_pk
第一个查询可能会有更好的性能,因为它只需要 table_1
和 table_2
.