Эффективный доступ к базе данных с точки зрения вставки записей - PullRequest
0 голосов
/ 03 октября 2011

Я заранее прошу прощения за вопрос «новичка», но я все еще принципиально новичок в большинстве аспектов 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  

. Кроме того, автор упоминает «методы прямой загрузки, которые еще быстрее».

К сожалению, я не совсем понимаю идеювставка массивов (если вообще).Может ли кто-нибудь рассказать о методах, на которые ссылается автор, с точки зрения вставки массивов и других "методов прямой загрузки", на которые он ссылался?

Ответы [ 2 ]

6 голосов
/ 03 октября 2011

Автор показывает, что

INSERT INTO Table (Column) 
VALUES ('myValue')

будет так быстро.

Это будет значительно быстрее

INSERT INTO Table (Column) 
VALUES ('myFirstValue'), 
('mySecondValue'), ...

Автор говорит, что при 10 VALUES элементах вставляется 5 914 строк в секунду, но если в одном операторе SQL содержится 100 элементов, то скорость загрузки возрастает до 9 190 строк в секунду.

Наконец, «методы прямой загрузки» относятся к операциям массовой вставки. Вы можете google массовая вставка msSQL , чтобы найти множество учебных пособий для загрузки файла и последующей обработки его в таблицу.

4 голосов
/ 03 октября 2011

Самый быстрый способ вставить большие объемы данных в таблицу SQLServer - это процесс, известный как «Массовая вставка». Есть несколько способов сделать это. Существует приложение командной строки, которое поставляется с SQL Server, которое называется bcp, есть команда TSQL BULK INSERT и клиентский объект .NET sql, System.Data.SqlClient.SqlBulkCopy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...