Оптимизирован процесс перемещения записей в диапазоне от 1 миллиона до 10 миллионов - PullRequest
2 голосов
/ 21 августа 2011

Что бы вы сделали, если бы вам пришлось массировать данные и перемещать их из базы данных на одном сервере в базу данных на другом сервере?
Массажные данные были ограничены использованием CONVERT или CAST.Этот процесс был вызван загрузчиком данных в C # .NET.Сценарии SQL выполнялись в SQL Server 2008.
Не могли бы вы предложить этот процесс с использованием SQLBulkCopy, LINQ to SQL или это следует делать только с помощью INSERT ........ SELECT в TSQL?Данные могут содержать от 1 до 10 миллионов строк.
Буду признателен за ваши взгляды на этот процесс, чтобы проверить оптимизированный процесс при выполнении вышеуказанной операции.

Ответы [ 3 ]

2 голосов
/ 21 августа 2011

LINQ-to-SQL следует избегать здесь; он не оптимизирован для этого (он нацелен на отдельные объекты / записи - не навальный). Возможна вставка / выборка в кросс-базе данных (и, возможно, в связанном сервере), но я бы посмотрел на объемные варианты. Я подозреваю, что здесь может быть полезен SSIS (бывший DTS) - он в значительной степени предназначен для этого. Если вам нужен управляемый параметр, средство чтения данных из источника (ExecuteDataReader ()), подключенного к SqlBulkCopy к цели, будет выполнять ту же функцию, что и SSIS (с использованием того же протокола массовой передачи).

0 голосов
/ 21 августа 2011

У меня есть такие проблемы раньше. Я решаю эту проблему с помощью SQLBulkCopy. BCP отлично работает.

0 голосов
/ 21 августа 2011

Глядя на объем данных, с которыми вы собираетесь работать, я бы лично выбрал ReplicationServices http://msdn.microsoft.com/en-us/library/ms151198.aspx и, если это возможно, избегал программных решений.

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