Из того, что было предложено здесь , я пытаюсь перенаправить вывод с sqlcmd
на 7zip
, чтобы можно было сэкономить место на диске при выгрузке базы данных объемом 200 ГБ. Я пробовал следующее:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..." | .\7za.exe a -si <FILENAME>
Похоже, это не работает, даже когда я покидаю систему на целый день. Тем не менее, следующие работы:
> sqlcmd -S <DBNAME> -Q "SELECT TOP 100 * FROM ..." | .\7za.exe a -si <FILENAME>
и даже этот:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..."
Когда я удаляю символ pipe
, я вижу результаты и даже могу перенаправить его в файл за 7 часов до конца.
Я не уверен, что происходит с передачей большого количества выходных данных, но до этого момента я мог понять, что 7zip, кажется, ждет, чтобы поглотить весь ввод, прежде чем он создаст архивный файл (потому что я не действительно вижу файл, создаваемый для начала), поэтому я не уверен, что он действительно выполняет сжатие на лету. Итак, я попробовал gzip и вот мой опыт:
> echo "Test" | .\gzip.exe > test.gz
> .\gzip.exe test.gz
gzip: test.gz: not in gzip format
Я не уверен, что делаю это правильно. Есть предложения?