У моего нового клиента есть небольшое приложение базы данных VB/Access, написанное в 2002 году, которое он хочет переписать, чтобы сделать его более современным и поддерживать новые функции, которые он давно хотел. Итак, я собираюсь преобразовать его для использования C#.NET 2008 и SQL Server Express 2008 на локальном компьютере с возможностью масштабирования до использования WCF и SQL Server 2008 на удаленном сервере.
Одна из новых функций, которая его интересует, — это ведение и отчетность по полной истории изменений данных за определенный период времени. В прошлом я делал это с помощью триггеров и хранимых процедур, и это было головной болью @!#$.
В последнее время у меня возник зуд, чтобы возиться с функциями захвата данных изменений SQL Server 2008. В течение первого часа игры с ним я понял, что он создает задание в агенте SQL, которое по умолчанию запускается каждые 5 секунд. Также кажется, что это немного сложнее, когда мне нужно изменить схему захваченных таблиц. Кроме того, это кажется намного проще реализовать, чем мой оригинальный метод. Итак, это мои вопросы:
- Является ли это излишним для небольшого настольного приложения, которое может или не может в конечном итоге мигрировать на удаленный сервер?
- Что я должен ожидать с точки зрения производительности? По мере увеличения размера его базы данных, буду ли я получать от него больше звонков со словами, что его компьютер работает медленно?
- Есть ли какие-либо другие проблемы с CDC, о которых мне следует знать от тех, кто в настоящее время использует его в производстве?
- Есть ли у кого-нибудь ссылки на их любимые способы отслеживания изменений с течением времени, которые могут лучше подойти для небольшого настольного приложения?
Спасибо,
Марк