Sql 覆盖相同的值有任何缺点吗?

Sql 覆盖相同的值有任何缺点吗?,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,下面有两个查询,实际上它们都在做完全相同的事情。它将所有产品标记为已发布。但第一个似乎覆盖了甚至已发布的is 1,并且似乎做了更多的工作。从性能、日志等方面来看,第一个查询与第二个查询相比有什么不足之处吗 已发布列的位不为空 UPDATE Products SET Published = 1 第二个问题 UPDATE Products SET Published = 1 WHERE Published != 1 您是否尝试过在一个包含大量数据的表上使用这些查询集,而Published列没有索

下面有两个查询,实际上它们都在做完全相同的事情。它将所有产品标记为已发布。但第一个似乎覆盖了甚至已发布的is 1,并且似乎做了更多的工作。从性能、日志等方面来看,第一个查询与第二个查询相比有什么不足之处吗

已发布列的位不为空

UPDATE Products
SET Published = 1
第二个问题

UPDATE Products
SET Published = 1
WHERE Published != 1

您是否尝试过在一个包含大量数据的表上使用这些查询集,而
Published
列没有索引?我相信在这种情况下,第一个查询比第二个查询更有效。我所指的表也有多列,根本没有索引。希望有人能澄清这一点。

您是否尝试过在包含大量数据的表上使用这些查询集,而
已发布的
列没有索引?我相信在这种情况下,第一个查询比第二个查询更有效。我所指的表也有多列,根本没有索引。希望有人能澄清这一点。

这是个好问题。在相似的环境中,我经常想知道同样的事情。会有性能差异,但它们有多重要以及有多重要取决于索引和表的大小。您是否查看了这两个查询的统计输出并比较了读/写/执行计划?如果它写得更多,客观上会对性能造成影响,但在时间上可能可以忽略不计。这是个好问题。在相似的环境中,我经常想知道同样的事情。会有性能差异,但它们有多重要以及有多重要取决于索引和表的大小。您是否查看了这两个查询的统计输出并比较了读/写/执行计划?如果它写得更多,客观上会对性能造成影响,但在时间上可能可以忽略不计。