数据库引擎更新逻辑

Database Engine Update Logic

当在 SQL 服务器 table 中更新记录时,数据库引擎如何实际执行这样的请求:是 INSERT + DELETE 还是 UPDATE 操作?

众所周知,数据库和任何语句的性能取决于许多变量。但是我想知道有些事情是否可以概括。

非常感谢。 彼得

更新编辑现有行。如果它是 insert/delete,那么你会因为重复的键而更新失败。

Insert/Update/Delete 也都可以离散许可。因此,用户可以更新记录,但不能插入或删除,这也导致这不是它的工作方式。

在基础 table 上进行的没有触发器的更新始终是物理更新。 SQL服务器没有这个门槛。您可以查看使用情况统计信息,例如,在 sys.dm_db_index_usage_stats.