通过组插入减少 SQL Server 开销

发布于 2024-10-11 06:46:23 字数 236 浏览 1 评论 0原文

我有一个爬虫可以跨网页获取文档。当我收到一个页面时,我立即将内容插入到sql server中(每秒20次插入)。这会降低我的应用程序和服务器的响应速度。我想我可以在一个组中收集 20 个项目,然后使用带有 (20*fieldCount) 的存储过程插入它。

这会稍微减少 sql server 的开销,但我不知道将 200 个参数传递给 sql server 存储过程不会产生额外的开销。请帮我。 有没有更好的方法来最小化这种频繁插入的开销?

I have a crawler that fetch documents across web pages. when i receive a page, i immediately insert the content in sql server, (20 insertion per second). this slow down my application and server responsiveness. I thought I could collect 20 item in a group and then insert it using a store procedure with (20*fieldCount).

This reduce the sql server overhead a bit, but i don't know passing 200 parameter to sql server stored procedure doesn't make another overhead. please help me.
is there any better way to minimize the overhead of this frequent insertion?

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

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

发布评论

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

评论(2

寂寞美少年 2024-10-18 06:46:23

更少的连接打开

甚至像现在一样调用同一个SP,连续调用20次也会更快。因为您只需建立一次 SQL 连接,然后推送 20 条记录。主要开销是打开和关闭连接。

Less connection opening

It would be faster even to call the same SP as you have now and call it 20 times in a row. Because you'd only establish a SQL connection once and then push 20 records in. The major overhead being opening and closing a connection.

牛↙奶布丁 2024-10-18 06:46:23

您可以准备数据的 xml,然后将 xml 传递到存储过程的输入参数中。在使用 openXml 的存储过程中,您可以在数据库中插入数据。

You can prepare a xml of your data and then pass xml in input parameter of stored procedure. and in stored procedure using openXml you can insert data in DB.

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