我为“菜鸟”问题提前道歉,但我在SQL的大多数方面仍然是一个新手。 我的问题源于SQL的艺术第二章的一部分。在标题为“稳定数据库连接”的段落中,作者提到了将大量行插入数据库的几种方法。以下是格式
的相应列表Test; Results Connect/Disconnect for each line in turn; 7.4 lines loaded per second Connect Once, all candidate lines individually inserted; 1,681 lines loaded per second Connect Once, all candidate lines inserted in arrays of 10 lines; 5,914 lines inserted per second Connect Once, all candidate lines inserted in arrays of of 100 lines; 9,190 lines inserted per second
此外,作者还提到“直接加载技术甚至更快。”
不幸的是,我并不完全理解插入数组的想法(如果有的话)。在插入数组和他引用的其他“直接加载技术”方面,有没有人可以详细说明作者所指的技术?
答案 0 :(得分:6)
作者正在展示
INSERT INTO Table (Column)
VALUES ('myValue')
只会如此之快。
这样做会快得多
INSERT INTO Table (Column)
VALUES ('myFirstValue'),
('mySecondValue'), ...
作者说有10个VALUES
个项目每秒插入5,914行,但如果单个SQL语句中有100个项目,则加载速率会达到每秒9,190行。
最后,“直接加载技术”指的是批量插入操作。您可以在Google msSQL bulk insert上查找大量有关上传文件然后将其处理到表格的教程。
答案 1 :(得分:4)
将大量数据插入SQLServer表的最快方法是将进程称为“批量插入”。有几种方法可以做到这一点。有一个名为bcp的SQL Server附带的命令行应用程序,有一个TSQL命令BULK INSERT,还有一个.NET sql客户端对象,System.Data.SqlClient.SqlBulkCopy。