Я написал немного кода для обработки данных для всеобъемлющей транзакции. Однако я страдаю бесконечными проблемами и тупиками. Если я запустил свой код на небольшом наборе данных, он работает так, как ожидалось. Но теперь, когда у меня была восстановлена производственная среда для тестирования db, чтобы получить полный объем тестирования. В основном я тратил свое время, насколько я могу судить.Необходимо запустить приложение консоли миграции: слишком много процессов убийства записей - не знаю, как решить
private static void AddProvisionsForEachSupplement2(ISupplementCoordinator supplmentCord)
{
var time = DateTime.Now;
using (var scope = new UnitOfWorkScope())
{
var supplements = supplmentCord.GetContracts(x => x.EffectiveDate <= new DateTime(2014, 2, 27)).AsEnumerable();
foreach (var supplement in supplements){
var specialProvisionTable = supplement.TrackedTables.FirstOrDefault(x => x.Name == "SpecialProvisions");
SetDefaultSpecialProvisions(specialProvisionTable, supplement);
Console.Out.WriteLine(supplement.Id.ToString() + ": " + (DateTime.Now - time).TotalSeconds);
}
}
}
Вы можете видеть, что я решил проверить свою синхронизацию, она занимает примерно 300+ секунд, чтобы завершить цикл, а затем «фиксации», что происходит неприлично долго. Наверное, дольше.
Я получаю эту ошибку:
The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before the connection can be used to execute SQL statements.
Я добавил [Transaction (таймаут = 6000)], чтобы получить даже, что, прежде чем я получаю тайм-аут транзакции.
Спасибо Rippo, я старался быть кратким. Я добавлю sme дополнительную информацию, хотя я бы разместил ее как среднее число запросов на шесть цифр. Я больше не могу его обрезать, чем без переписывания всего бэкэнда проекта, который является «dev complete», это для ретроактивного обновления db. Для того, чтобы продемонстрировать, сколько мусора в этом проекте, я бы сказал, что в этом проекте много мусора, поэтому я надеялся, что указание waaaay слишком велико и тайм-аут транзакции приведет к тому же ответу, если бы это было 100k запросов или 600k запросов. – Seth