相当于 SQL Server 批量插入更新?

问题描述 投票:0回答:1

我广泛使用批量插入来完成入职和类似任务。除非我弄错了,否则运行速度很快的主要原因之一是大部分工作都是在服务器本地完成的,而不是发送大量 INSERT 查询。

现在我正在寻找类似的更新问题。我们从基本形式 TABLE/FIELD/PKEY=new value 的文件中收集对不同表中不同字段的更改。我没有找到任何类似于批量更新的内容,并且查看以前的线程似乎解决方案是一次上传〜= 2000个更新。

我构建了一个包含 30 个表的数据库。使用 BULK INSERT 我可以在每个中填充 1k 行 < 1 second. I then wrote some UPDATE code using a 2k row limit (so everything was a single batch per table in my DB) and that took 300 seconds. This is not unexpected, each UPDATE includes a WHERE so this is going to be more expensive.

我是否缺少更高性能的解决方案?

sql-server sql-update
1个回答
0
投票

我是否缺少更高性能的解决方案?

不,没有。一种常见的技术是使用表值参数或具有批量复制功能的临时表,这两者都应该能够快速插入。如果它们被索引,那么最终的连接更新应该非常快。

您还可以创建更改的 json,然后使用 OPENJSON 调用连接主表以执行一次更新。

© www.soinside.com 2019 - 2024. All rights reserved.