UPDATE 表中的一个字段与UPDATE表中的多个字段, 在效益上是否有区别?

程序猿GG 2010-12-29 05:22:12

UPDATE TableName SET F1 = V1 WHERE Id = 1


UPDATE TableName SET F1 = V1, F2 = V2, F3 = V3, F4 = V4, F5 = V5, ..., Fn = Vn  WHERE Id = 1


这两个语句, 在效益上是否有区别?


注: 我个人觉得UPDATE 其实就是一个DELETE + INSERT, 所以没有区别.
...全文
344 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-12-30
  • 打赏
  • 举报
回复
至少在速度上有区别.

如果只更新一个字段,当然快.
如果更新多个字段,当然比只更新一个字段要慢.你可以试试.
Mr_Nice 2010-12-30
  • 打赏
  • 举报
回复
数据量一致的情况下。速度上还是有差异的。
索引维护上也会产生运算。
billpu 2010-12-29
  • 打赏
  • 举报
回复
没区别应该 但是有触发器的情况可能会不一样
程序猿GG 2010-12-29
  • 打赏
  • 举报
回复
我的问题可能没表述清楚.
如果一个表有N个栏位, 其中只有一个栏位需更新值,我写成
UPDATE TableName SET F1 = newValue WHERE Id = 1


UPDATE TableName SET F1 = newValue, F2 = F2_OleValue...... Fn = Fn_OldValue WHERE Id = 1

有无区别

因为我看到一个示例, 是将所所对Table的Insert,Update, Delete写在一个存储过程中, 他的Update语句就是对Table中的每个栏位都重新赋值. 所以我想知道在效益上有没有区别.
xman_78tom 2010-12-29
  • 打赏
  • 举报
回复
update 更新操作有两种可能的处理方式:就地更新,适用于不需要移动行的更新;删除-插入更新,适用于需要移动行的更新,此类更新也有可能导致分页。

如果 update 语句所操作的行所在的页面插槽中有足够的空间,则不会移动行,只会在原位置修改数据。

如果 update 语句所操作的行所在的页面插槽中没有足够的空间,或者更新了聚集索引表的主键,这样便会导致行移动,也就是执行“删除-插入”,另外还可能会导致“分页”。




rucypli 2010-12-29
  • 打赏
  • 举报
回复
假如别的列有索引 就有区别了
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧