请问sql中为了起到更新效果,删除后添加数据和直接更新数据的方法相比,运行速度会怎么样?

请问sql中为了起到更新效果,删除后添加数据和直接更新数据的方法相比,运行速度会怎么样?,第1张

你这表述的有点过大了,得具体问题具体分析。首先你表上是否有主键或者索引更新的字段是否跟主键或者索引所在的字段有关。其次:从理论上来说,更新(需要一次磁盘 *** 作)比先删除在插入速率会快些(需要两次磁盘 *** 作)。最后:速度的快慢取决于你的 *** 作对索引的影响,先删除在增加理论上会增加索引碎片。如果你是更新 *** 作的话直接更新索引字段的话,也会导致索引重新排序。

大概就是这样吧。

可能不必那么麻烦, 你导入数据的时候, 加一个参数就可以了.

Bcp 的话,加一个 -E

如果是 BULK INSERT

或者

INSERT ...SELECT * FROM OPENROWSET(BULK...)

加一个 KEEPIDENTITY 就好.

SQL Server 导入 IDENTITY 类型的数据。

http://hi.baidu.com/wangzhiqing999/blog/item/18a6ecddb83405fc39012fcc.html

不知道你是什么数据库,是怎么备份的,这里就说一种比较通用的办法。

(1)恢复备份数据到临时表

(2)将现在数据库内的数据插入临时表(类似merge,别用啊,表大的话会卡死的),如果不嫌麻烦,那么就写一个过程,重复的数据不插入,当然如果能用简单的方式判断就更好了,比如时间判断什么的,货叉插入完成后再去重也可以,这个就看你自己的选择了。

(3)现在临时表中的数据就是你要的数据,然后用临时表取代现有表就可以。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11748564.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存