Я использую SQL Server 2008 R2, и у меня есть преобразование, написанное на VB.NET, которое занимает несколько часов и преобразует миллионы записей. Есть моменты, когда мне нужно отменить процесс, который откатывает транзакцию. Когда это происходит, я не хочу, чтобы откат занял несколько часов, как это происходит.
Поэтому я удалил транзакцию все вместе, чтобы не было времени для отката, но он оставляет все записи в том состоянии, в котором они находятся. Тем не менее, у меня есть одна таблица с миллионами записей в ней. Я удаляю все записи, чтобы начать. Чтобы удалить все записи, нужны часы. Когда я смотрю на RowCount таблицы, он говорит ноль, как будто он удалил их все, но он чего-то ждет, и я не могу понять, что. Я надеюсь, что помещение команды DELETE в транзакцию с уровнем изоляции READ UNCOMMITTED поможет.
Я хотел бы получить мнение о том, что является лучшим методом для уровней изоляции транзакций на больших объемах данных, прежде чем я попытаюсь это сделать, потому что это займет несколько часов. Кроме того, как вы думаете, если бы я поместил всю конвертацию в транзакцию READ UNCOMMITTED, это не заняло бы никакого времени, если я отменил бы процесс?