Через веб-службу удаленные компьютеры будут отправлять набор строк для вставки на наш центральный сервер sql.
Каков наилучший способ (с точки зрения производительности) вставить эти строки? Каждый раз может быть вставлено от 50 до 500 строк.
Я знаю, что могу сделать массовую вставку или отформатировать данные как XML, чтобы вставить их таким образом, но я никогда раньше не делал этого в корпоративных условиях.
Обновления с использованием веб-служб wcf (или, возможно, wse еще не уверены) и стандарта SQL Server 2008.
Ответ 1 · рейтинг 6 · Chris Winters
Если вы не работаете на 10-летнем компьютере, 50-500 строк - это не очень много; вы можете буквально отправлять операторы SQL и направлять их непосредственно в базу данных и получать отличную производительность. Если, конечно, вы доверяете службам, отправляющим вам данные :-)
Если производительность действительно является проблемой, отправка через файл bcp является самым быстрым способом застревания данных в базе данных. Судя по вашему вопросу, вы уже знаете, как это сделать.
Ответ 2 · рейтинг 5 · AnthonyWJones
Всего 50-500 записей не являются "массовой вставкой". Механизм массовой вставки предназначен для действительно массивного импорта данных, за которым следует немедленное резервное копирование.
В веб-службе я бы просто передал XML на сервер SQL. Особенности будут зависеть от версии.
Ответ 4 · рейтинг 3 · Martin K.
50-500 строк не должны быть проблемой! Нет необходимости делать настройку производительности! Выполняйте обычные (подготовленные) операторы SQL в своем приложении.
Не убивайте его сложностью и чрезмерной инженерией.
Когда вам нужно вставить более 250 000 строк, вам следует подумать о масштабировании!
Не отключайте ограничения, вы можете убить БД.
Ответ 5 · рейтинг 2 · Charles Bretana
Чтобы повторить все остальные ответы, 500 строк не являются проблемой для SQL-сервера. Если вам нужно вставить большое количество записей, самый быстрый способ - использовать встроенную хранимую процедуру под названием BulkInsert.
Массовая вставка
который (я полагаю) является точкой входа в утилиту SQL Server, разработанную специально для этого, называемую bcp.exe
bcp