【发布时间】:2010-10-09 03:46:08
【问题描述】:
鉴于 SQL Server 2008/2005 上的两个场景 - 1 表有 5 行 2 表有 100 万行
如果我们需要更新几行,什么是高效的,为什么? 1)更新所需的列 2)删除行并使用更新的信息插入新行
【问题讨论】:
-
如果你只需要更新几行,我认为性能不如你需要更新所有 100 万行那么重要。
-
我更新了问题,提到我理想的目标是 SQL 2005/2008。
-
想想你在问什么 - 做两个操作比一个快吗?要删除一个记录,它需要从数据块和任何关联的索引块中删除它。插入必须做相反的事情。更新被优化为尽可能少地就地更新,仅在索引列发生更改时才触及索引。所以简而言之,更新速度要快得多。
-
如果你有参照完整性怎么办?您将无法删除行并重新插入它们!
标签: sql sql-server sql-server-2005 performance sql-server-2008