【发布时间】:2018-09-18 20:59:13
【问题描述】:
我使用 Tabular Object Model 和 powershell 脚本处理我们的表格模型(兼容性级别 1200)。该脚本使用一些元数据来确定给定表需要处理哪些分区,然后在这些分区上执行process full。在某些情况下,脚本会在整个表上执行Process Full(例如在第一次将模型部署到服务器之后)
当脚本处理整个表时,我希望能够控制在任何给定时间对数据源执行多少并发查询,因此在我的脚本中,我创建了一个 Microsoft.AnalysisServices.Tabular.SaveOptions 的新实例并设置MaxParallelism 属性设置为 1 到 10 之间的数字。然后我将更改保存到服务器上的模型,并等待处理完成。
$serverTable.RequestRefresh([Microsoft.AnalysisServices.Tabular.RefreshType]::Full)
$db.Update( "ExpandFull")
$saveOptions = New-Object Microsoft.AnalysisServices.Tabular.SaveOptions
$saveOptions.MaxParallelism = $maxParallelism
$result = $db.Model.SaveChanges($saveOptions)
如果我监控表连接到的 SQL 服务器,无论我将 MaxParallelism 设置为什么,我都会从我的 SSAS 框中看到几个查询(大多数情况下是 8 个)。阅读该属性上的documentation,此值不能保证并行性,因为服务器可能会强制执行其他限制。我没有看到任何提到并行性的server properties。还有哪些其他限制/为什么此属性不会影响同时运行的查询数量?
【问题讨论】:
标签: powershell ssas-tabular ssas-2016