使用Invoke-ASCmd进行MDX查询时发生System.OutOfMemoryException

时间:2018-10-26 12:54:20

标签: powershell out-of-memory ssas ascmd

我想使用Invoke-ASCmd将MDX结果集导入Powershell。

Import-Module SQLPS -DisableNameChecking
Import-Module SQLASCMDLETS

Push-Location SQLSERVER:\SQLAS\$ServerInstance\Default\Databases\$Database\Cubes\

$result = Invoke-ASCmd -Database $Database -Query $Query

Pop-Location

失败,并显示System.OutOfMemoryException

  • 相同的MDX查询在SQL Server Management Studio中可以正常工作。
  • 仍有大量可用RAM。
  • Powershell以64位模式运行。
  • MaxMemoryPerShellMB增加了。
  • 我正在使用SQL Server 2016和Powershell 4

怎么做才能使用Powershell从SQL Server Analysis Services导入大型数据集?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

如果将链接服务器添加到SSAS多维数据集的SQL Server,则可以用SQL封装它。

Invoke-Sqlcmd `
    -ServerInstance $ServerInstance `
    -Query "SELECT * FROM OpenQuery([SSAS_LinkedServer],'$( $query.Replace("'", "''" ) )')"