sql - BULK INSERT 内部如何工作?

标签 sql sql-server tsql bulkinsert

有人可以解释一下 BULK INSERT 内部是如何工作的以及为什么它比正常的 INSERT 操作快得多吗?

问候, 希希尔。

最佳答案

BULK INSERT 与 SQL Server 的数据库引擎一起运行,从而避免通过客户端 API 的网络层传递数据 - 这使其比 BCP 和 DTS/SSIS 更快。

此外,使用BULK INSERT,您可以指定数据的ORDER BY,如果这与表的PK相同,则锁定发生在PAGE级别。对事务日志的写入也发生在页级别而不是行级别。

在常规 INSERT 的情况下,锁定和事务日志写入位于行级别。这使得 BULK INSERT 比 INSERT 语句更快。

关于sql - BULK INSERT 内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702311/

相关文章:

mysql - 面临 Oracle 中 SELECT DML 更改的问题

sql-server - 不使用 DTU 的 Azure SQL Server JSON

MySQL 到 SQL Server 选择语句

mysql - 如何将 EXEC 语句的输出放入变量中(在 mysql 链接服务器上调用过程)?

sql-server - 如何在 T-SQL 中从 XML 读取选项?

sql - 如何使用 Oracle 声明带有 OR 条件的外键?

sql - 将多行合并为 1 行

java - 如何获取过去 30 天内添加的产品的查询 (HSQLDB)

c# - UTF8编码为base64string并存入数据库

sql-server - 将 SQL Server 数据库合并为 1