首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UPDATE / UPDATE TOP (1)

使用UPDATE / UPDATE TOP (1)
EN

Stack Overflow用户
提问于 2019-12-02 13:20:05
回答 1查看 164关注 0票数 0

我通常使用:

代码语言:javascript
复制
UPDATE table1 SET field1='test' WHERE ID=10

但使用以下声明会更有效吗?

代码语言:javascript
复制
UPDATE TOP (1) table1 SET field1='test' WHERE ID=10

如果我有很多记录?

ID列是主键,也是自动递增的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 13:24:10

如果ID列是主键,那么最多只有一个受UPDATE查询影响的记录。

如果主键在默认情况下是聚集索引,那么在这两种情况下性能应该是相似的。

即使在创建PK时,将其指定为非集群,但在搜索/选择/识别/过滤记录时(因为您使用的是WHERE),仍然可以提高性能。这可能没有聚集索引PK那么快,但是性能差异应该可以忽略不计。

在创建PK时,您必须为您的键选择两种索引类型之一,如mentioned and explained here in more detail

因此,两个版本的UPDATE查询都应该具有相似的性能(由于其他辅助操作,在不同的情况下运行时可能会有很小的差异)。

结论:

如果您的ID列中有一个主键,并且在查询的FILTERING部分(WHERE)中使用它,那么当您查询数千条、数百万条甚至可能高达数十亿条记录时,应该会很好。

免责声明:

UPDATE查询的性能/速度还取决于需要更新哪些其他索引,原因是值的更改(包含field1作为其键的索引)、表上的触发器、外键的级联规则等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59139764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档