gpt4 book ai didi

performance - 优化大量插入性能...?

转载 作者:行者123 更新时间:2023-12-03 13:17:18 25 4
gpt4 key购买 nike

鉴于:SQL Server 2008 R2。退出一些speedin数据光盘。日志光盘滞后。

要求:很多插入。像 10.000 到 30.000 行到一个简单的表中,每秒有两个索引。插入有一个固有的顺序,不会重复,因为这样的插入顺序不能在短期内保持(即多个平行插入是可以的)。

到目前为止:将数据累积到队列中。定期(异步线程池)将最多 1024 个条目清空到排队的工作项中。线程池(自定义类)有 32 个可能的线程。打开 32 个连接。

问题:性能下降了 300 倍......每秒仅插入大约 100 到 150 行。日志等待时间高达 40% - 45% 的 sql server 处理时间(每秒毫秒)。服务器 cpu 负载低(4% 到 5% 左右)。

不可用:批量插入。数据必须尽可能实时地写入光盘。这几乎是一个通过系统运行的数据归档过程,但是有一些查询需要定期访问数据。我可以尝试将它们转储到光盘并每秒使用批量上传 1-2 次......将尝试一下。

有人有聪明的想法吗?我的下一步是将日志移动到快速磁盘集(128GB 现代 ssd),然后看看会发生什么。显着的性能提升可能会做完全不同的事情。但即便如此......问题是是否/什么是可行的。

所以,请激发聪明的想法。

最佳答案

好吧,随便我自己。打算尝试 SqlBulkCopy,批处理多达 65536 个条目并以异步方式每秒刷新它们。将报告 yield 。

关于performance - 优化大量插入性能...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com