#sql #tsql #insert #data-access-layer
#sql #tsql #вставить #уровень доступа к данным
Вопрос:
Заранее прошу прощения за вопрос «новичка», но я все еще новичок в большинстве аспектов SQL. Мой вопрос вытекает из части второй главы «Искусство SQL». В отрывке, озаглавленном «Стабильные подключения к базе данных», автор упоминает несколько способов вставки большого количества строк в базу данных. Вот соответствующий список в формате
Тест; Результаты Подключение / отключение для каждой строки по очереди; загружается 7,4 строки в секунду Подключитесь один раз, все строки-кандидаты будут вставлены по отдельности; 1681 строка загружается в секунду Подключитесь один раз, все строки-кандидаты вставляются в массивы по 10 строк; 5914 строк вставляются в секунду Подключитесь один раз, все строки-кандидаты вставляются в массивы по 100 строк; 9 190 строк вставляются в секунду
Кроме того, автор упоминает «методы прямой загрузки, которые еще быстрее».
К сожалению, я не совсем понимаю идею вставки массивов (если вообще понимаю). Может ли кто-нибудь подробнее рассказать о методах, на которые ссылается автор, с точки зрения вставки массивов и других «методов прямой загрузки», на которые он ссылался?
Ответ №1:
Автор показывает, что
INSERT INTO Table (Column)
VALUES ('myValue')
это будет так быстро.
Это будет значительно быстрее
INSERT INTO Table (Column)
VALUES ('myFirstValue'),
('mySecondValue'), ...
Автор говорит, что при наличии 10 VALUES
элементов вставляется 5914 строк в секунду, но если в одном операторе SQL 100 элементов, то скорость загрузки возрастает до 9190 строк в секунду.
Наконец, «методы прямой загрузки» относятся к операциям массовой вставки. Вы можете использовать массовую вставку msSQL в Google, чтобы найти множество руководств по загрузке файла и последующей обработке его в таблицу.
Комментарии:
1. Я добавлю, что (по крайней мере, на SQL Server) вы можете отправить XML-файл и вставить из него строки. Это довольно быстро. Не так быстро, как массовая вставка, но так же быстро, как «форматирование»
INSERT INTO Table
Ответ №2:
Самый быстрый способ вставить большие объемы данных в таблицу SQLServer — это процесс, известный как «Массовая вставка». Есть несколько способов сделать это. Существует приложение командной строки, которое поставляется с SQL Server под названием bcp, есть команда TSQL BULK INSERT и есть клиентский объект .NET sql System.Data.SqlClient.SqlBulkCopy.