У нас есть приложение, которое публикует большое количество изменений в таблице (таблица 1) в базе данных SQL Server 2000.
Каждая вставка / обновление / удаление запускает триггер в этой таблице и записывает подробности изменения в другую таблицу (таблица 2), включая уникальный ключ таблицы 1.
Затем через определенные промежутки времени приложение .Net опрашивает таблицу 2, чтобы выяснить, есть ли какие-либо обновления, которые необходимо перенести в таблицу, идентичную таблице 1 в базе данных SQL Server 2008 - таблица 3.
Процедура берет «верхние 10000» строк изменений и применяет их индивидуально к таблице 3, повторяя процесс до тех пор, пока не останется ни одного. Для обработки каждых 10000 требуется около минуты, включая массовое обновление таблицы 2, чтобы указать, что передача данных завершена.
Каждое обновление таблицы 3 выполняется с использованием уникального ключа, а индексирование таблицы является надежным.
Когда обновление завершено до таблицы 3, таблица 2 обновляется, чтобы показать, что транзакция была применена к базе данных SQL Server 2008.
В таблицу 1 иногда попадают 40000 обновлений, кажется, что они работают нормально, но база данных SQl Server 2008 страдает, когда там обновляются записи.
Какой самый эффективный способ публикации обновлений в таблице 3?
Я думаю, что сервисный брокер может выполнять эту работу, но как мне создать сообщение XML в приложении .Net и поместить его в очередь для применения сервисным брокером - и не вызовет ли это те же проблемы в любом случае - то же самое? Работа выполнена другим процессом.