System.OutOfMemoryException при MDX-запросе с использованием Invoke-ASCmd - PullRequest
0 голосов
/ 26 октября 2018

Я хочу импортировать набор результатов MDX в Powershell, используя Invoke-ASCmd.

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.
  • Все еще много свободной оперативной памяти.
  • Powershell работает в 64-битном режиме.
  • MaxMemoryPerShellMB увеличено.
  • Я использую SQL Server 2016 и Powershell 4

Что делать, чтобы импортировать большие наборы данных из служб аналитики SQL Server с помощью Powershell?

1 Ответ

0 голосов
/ 29 октября 2018

Я нашел обходной путь для этого:

Если вы добавили связанный сервер к SQL Server в куб SSAS, вы можете выполнить его в оболочке SQL.

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