Parece que o PowerShell Get-Content
não é muito eficiente quando se trata de arquivos grandes, portanto, é possível usar a opção -ReadCount
para informar quantas linhas por vez enviarão do arquivo. Eu coloquei 500 abaixo para que ele canalizasse 500 linhas de cada vez.
Leia também o artigo do Microsoft PowerShell abaixo.
Exemplo do PowerShell v 5.0
-
Get-Content -ReadCount 500 backup.sql | & psql --username=... db_name
Exemplo de versão herdada do PowerShell
-
Get-Content -Read 500 backup.sql | & psql --username=... db_name
Como o PowerShell Get-Content
não é eficiente com arquivos grandes, dê uma olhada em Start-Process
Leia também o artigo do Microsoft PowerShell abaixo.
PowerShell v 5.0 Exemplo (usando -RedirectStandardInput
switch)
Start-Process "C:\Program Files\PostgreSQL\<version>\bin\psql.exe" '--username=... db_name' -RedirectStandardInput backup.sql -NoNewWindow -Wait