使用 Mars 更新 7000 行高效吗?

发布于 2024-08-08 21:01:09 字数 44 浏览 6 评论 0原文

我有一项使用 MARS 更新/插入 7000 多行的服务。有更好的方法吗?

I have a service to update/inserts 7000+ rows using MARS. Is there a better way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趁年轻赶紧闹 2024-08-15 21:01:09

如果您经常这样做,那么对于本卷,我将使用 SqlBulkCopy 将数据推送到临时表(与目标表的架构相同,但隔离),然后使用存储过程执行插入/更新(从临时表到实际表) - 可能包含在事务中。

这将最大限度地减少往返次数,并使用批量插入 API 来推送数据。

如果您不需要一批中的所有内容,另一种选择是以(例如)100 条记录为单位处理数据;这应该可以工作,不会导致事务花费太长的时间 - 它会明显比批量复制方法慢,但具有基于对象的优点,并且不需要您使用额外的工具/语言集。

If you are doing this regularly, then for this volume, I would use SqlBulkCopy to push to data into a staging table (same schema to the target table, but isolated), and then use a stored procedure to do the inserts / updates (from the staging table into the actual table) - probably wrapped in a transaction.

This will minimize the round-trips, and use the bulk insert API for pushing the data.

If you don't need everything in one batch, another option would be to process the data in blocks of (say) 100 records; this should work, without causing the transactions to take too long - it will be noticeably slower than the bulk-copy approach, but has the advantage of being object-based, and not requiring you to use an extra set of tools / languages.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文