SQL UPDATE:一个语句中的多个列还是多个单列语句?

Nic*_*ndo 2 sql sql-server performance sqlperformance

执行UPDATE具有多个列的一个语句是否更有效

UPDATE myTable 
SET [col1] = [col1] + 1, 
[col2] = [col2] + 1,
[col3] = [col3] + 1,
... 
[colN] = [colN] + 1
Run Code Online (Sandbox Code Playgroud)

或者UPDATE每个单列有多个语句?

UPDATE myTable SET [col1] = [col1] + 1
UPDATE myTable SET [col2] = [col2] + 1
UPDATE myTable SET [col3] = [col3] + 1
...
UPDATE myTable SET [colN] = [colN] + 1
Run Code Online (Sandbox Code Playgroud)

Dav*_*d W 6

这可能会随着任何一个数据库引擎的特定实现而变化,但我将投票表明单个更新通常比连续更新更好.DB只需要找到一次所需的记录,更新相关值,并完成它.

现在,鉴于有计划缓存,索引,优化器和其他元素可以使事情变得更加智能,很可能多版本的版本几乎接近前者的性能,但我的期望是即使在最好的情况下,前者也会表现得更好.