首页 > 解决方案 > 提高 SQL Server 插入大数据的性能

问题描述

我正在将大约 10 亿条记录插入到 SQL Server 表中。这个过程很漫长,我正在努力改进它。

因此我做了这些:

在此处输入图像描述

我想知道限制日志文件大小是否有助于提高 SQL Server 性能?如果是这样,我该怎么做?

我还能做些什么来改进插入过程吗?

编辑

SQL Server 版本:15.0.2000.5

通过 .Net 应用程序加载数据,我在其中处理数据并将其发送到仅具有插入语句的存储过程(都在同一台 PC 上,没有网络,即 SQL 服务器和 .Net 应用程序都在同一台机器上)

目前在 50 分钟内插入了大约 2000 万条记录

服务器规格: 在此处输入图像描述

恢复模式 = 完全

我删除了所有集群和非集群索引

标签: sql-server

解决方案


我当时插入了 1 条记录。

这不会是超快的。在每个命令中向 SQL Server 发送多行。最快的方法通常是SqlBulkCopy,您可能不需要并行执行任何操作。同样使用表值参数或 JSON 一次发送多行都比你正在做的要快得多。

我正在做的是读取 XML 然后将其插入 1

您可以将整个 XML 文档发送到 SQL Server 并使用 xml nodes()openxml将其切碎。或者,您可以使用 XMLReader 并将行通过管道传输到 SqlBulkCopy,方法是实现从 XML 流中读取的自定义 IDataReader。


推荐阅读