Вот сценарий:
В настоящее время я работаю над устаревшей системой отчетности для компании, которая собирает данные с датчиков. База данных (SQL-Server 2005) довольно большая (около 500 ГБ), каждый день добавляются сотни МБ. Система выполняет серию ночных заданий, чтобы объединить и преобразовать вновь добавленные данные в промежуточную базу данных, из которой создаются отчеты. Выполнение этих заданий может занять несколько часов и полностью написано на SQL, в результате чего сотни хранимых процедур (некоторые из которых имеют длину до 3000 строк) содержат тонны бизнес-логики. Система находится в процессе разработки в течение почти трех лет и стала кошмаром технического обслуживания.
Моя дилемма:
Мы хотели бы переписать части системы (наиболее срочно ночные задания) на платформе, лучше подходящей для выражения и поддержки сложной бизнес-логики (она же C #). Проблема в том, что нам часто необходимо отлаживать процесс сбора данных, чтобы обнаружить ошибки в системе и (чаще всего) несоответствия в исходных данных. Единственное место, где мы можем обнаружить эти проблемы, это производственная среда. Большим преимуществом текущей реализации в SQL является то, что мы можем просто копировать / вставлять части скриптов для анализа результатов каждого промежуточного шага. Это вряд ли возможно с решением C #, поскольку мы не можем установить Visual Studio в производственной среде.
Наконец, вопрос:
Есть ли у вас какие-либо хорошие предложения о том, как сохранить наши гибкие возможности отладки в производственной среде и найти способ выразить сложную бизнес-логику разумным способом?