Вы не перемещаете данные, это что-то вроде курсора? Если вы перемещаете одну запись за раз, это может занять несколько дней или месяцев, даже в зависимости от объема данных. Теперь, если у вас есть много данных для перемещения, вы можете захотеть цикл, но все же не одну запись на курсор времени, а цикл, который обрабатывает пакет записей. Часто быстрее вставить миллион записей, по 1000 за раз, чем все миллионы за раз.
Если все в настоящее время находится в одной транзакции, у вас также могут возникнуть проблемы, если вам нужно остановить и переосмыслить этот процесс long_running, так как он должен будет откатить все. Это может занять много времени.
Так как вы не настроили это с ведением журнала или каким-либо другим способом для отслеживания прогресса, я думаю, что предложение контролировать количество (*) в таблицах, в которые вы вставляете, является хорошим (и может быть, вы только реальный выбор). Просто убедитесь, что вы не используете блокировку, иначе результаты могут не вернуться, пока вставка не будет завершена. Также проверьте, не происходит ли блокировка, часто, когда что-то подобное занимает слишком много времени, другой процесс блокирует его.