首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库引擎更新逻辑

数据库引擎更新逻辑
EN

Stack Overflow用户
提问于 2015-01-15 17:55:57
回答 2查看 128关注 0票数 0

当在Server表中更新记录时,db引擎如何实际执行这样的请求:它是插入+删除还是更新操作?

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

  • 是否存在阈值(表大小、查询长度、#记录受影响.)在此之后,数据库在更新时切换到一种方法或另一种方法?
  • 如果在请求逻辑更新时SQL Server物理地执行insert/delete,是否有系统视图或度量来显示这一点?-也就是说,如果数据库引擎启动以来执行的所有插入、更新和删除的总数都在运行,那么在发出单个更新后,我将能够了解数据库的行为。
  • 根据Server版本(2008、2012.),UPDATE语句的行为是否有差异?

非常感谢。彼得

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-15 18:03:35

Update编辑现有行。如果是insert/delete,则会得到重复键的更新失败。

插入/更新/删除也可以谨慎允许。因此,用户可以更新记录,但不能插入或删除记录,这也会导致它的工作方式不正常。

票数 -1
EN

Stack Overflow用户

发布于 2015-01-15 18:08:02

没有触发器的基表上的更新总是物理更新。Server没有这样的阈值。例如,您可以在sys.dm_db_index_usage_stats中查找使用统计数据。

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

https://stackoverflow.com/questions/27969903

复制
相关文章

相似问题

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