Я бегаю sqlcmd
для импорта / выполнения файла SQL размером 2 ГБ, созданного с помощью SSMS Сгенерировать скрипты команда. Он начинается с типичного вывода, но экран быстро заполняется ...
...
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
...
Я оставил его работать до 20 минут и не видел, чтобы он завершился. Я не уверен, что программа все еще вставляет новые записи и, следовательно, продолжает выводить (1 rows affected)
или если он где-то заморожен в скрипте. На своих компьютерах с Linux я могу очистить экран терминала с помощью горячей клавиши и увидеть новый вывод.
Есть ли способ узнать, выполняется ли скрипт по-прежнему или он завис в Windows (Server 2016)?
Это требует некоторой подготовки (мало помогает, если скрипт уже запущен):
Сохраните вывод в файл:
command > .\output.txt
это нативный метод
Wintee копирует стандартный ввод в стандартный вывод + файл: command | wintee output.txt
Следите за размером файла, например с участием dir output.txt
.
Когда скрипт уже запущен:
Следите за журналами базы данных.
Использовать Монитор ресурсов.
Если вы используете Возможности рабочего стола Windows Server 2016 или иначе сценарий выполняется в окне, прокрутка вниз перемещает вывод вперед. Если скрипт завис, вы получите пустые строки в нижней части окна, но если новые строки будут переполнены, вы этого не сделаете. Вы можете проверить это, например, ping -t hostname
.