Самый быстрый способ массовой вставки строк в сервер SQL - PullRequest
9 голосов
/ 13 марта 2009

Через веб-службу удаленные компьютеры будут отправлять набор строк для вставки в наш центральный сервер SQL.

Каков наилучший способ (с точки зрения производительности) вставить эти строки? Каждый раз может быть от 50 до 500 строк для вставки.

Я знаю, что могу выполнить массовую вставку или отформатировать данные как XML, которые вставляют его таким образом, но я никогда раньше не делал этого в корпоративной среде.

Обновление использование веб-служб wcf (или, может быть, пока не уверены) и стандарта SQL Server 2008.

Ответы [ 5 ]

6 голосов
/ 13 марта 2009

Если вы не работаете на 10-летнем компьютере, 50-500 строк не очень много; Вы можете буквально посылать операторы SQL и направлять их прямо в базу данных и получать отличную производительность. Если вы доверяете сервисам, отправляющим вам данные, конечно: -)

Если производительность действительно является проблемой, отправка через файл bcp является абсолютно быстрым способом блокировки данных в базе данных. Из вашего вопроса звучит, что вы уже знаете, как это сделать.

5 голосов
/ 13 марта 2009

Простые 50-500 записей не составляют "массовую вставку". Механизм массовой вставки предназначен для действительно масштабного импорта данных, за которым сразу следует создать резервную копию.

В веб-сервисе я просто передаю XML в SQL-сервер. Специфика будет зависеть от версии.

3 голосов
/ 13 марта 2009

50-500 строк не должно быть проблемой! Нет необходимости делать настройку производительности! Делайте нормальные (подготовленные) операторы SQL в вашем приложении.

Не убивай его сложностью и перегрузкой.

Когда вам нужно вставить более 250 000 строк, вы должны подумать о масштабировании!

Не снимайте ограничения, вы можете убить БД.

3 голосов
/ 13 марта 2009

Что это за веб-сервис?

Если это .Net, обычно лучше всего загрузить входные данные в DataTable, а затем отправить его на сервер SQL с помощью SqlBulkCopy class

2 голосов
/ 13 марта 2009

Чтобы повторить все остальные ответы, 500 строк не проблема для сервера SQL. Если вам нужно вставить большое количество записей, самый быстрый способ - встроенный сохраненный процесс с именем BulkInsert,

BulkInsert

которая (я полагаю) является точкой входа в утилиту SQL Server, специально разработанную для этого и называемую bcp.exe

BCP

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