PowerShell Invoke-SqlCmd和内存使用情况

时间:2015-11-30 16:18:25

标签: sql-server powershell

如果我执行以下Powershell命令:

Invoke-Sqlcmd `
  -ServerInstance '(local)' -Database 'TestDatabase' `
  -Query "select top 1000000 * from dbo.SAMPLE_CUSTOMER" | Out-Null

我看到我的记忆用法经过了屋顶。它使用1GB内存。

如果我再次启动命令,内存会增加到1.8GB内存,然后减少到800MB(垃圾收集?)并再次开始增长。

我尝试按照文章http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure-powershell-memory.aspx中的步骤减少PowerShell shell和插件的内存占用量,但我仍然看到内存增加远高于配置的100MB。

我有一些问题:

  1. 为什么PowerShell不尊重设置 MaxMemoryPerShellMB 给出的内存限制?
  2. 为什么Invoke-Sqlcmd会占用内存而不会“忘记”管道中处理的记录
  3. 为什么PowerShell进程在完成处理后不会自动回收内存?
  4. 如何在没有大量内存的情况下处理许多SQL记录?

0 个答案:

没有答案