You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询SSAS实例中当前正在处理的表格模型?

查询SSAS实例中正在处理的表格模型方法

方法一:通过SSMS活动监视器查看

  • 连接到目标SSAS实例,右键实例名称 → 选择「活动监视器」
  • 切换到「正在执行的作业」标签页,这里会列出所有当前运行的操作。找包含Process关键字的命令,就能识别出模型处理任务,同时能看到对应的模型名称、启动时间、会话ID等信息。

方法二:用DMV查询精准定位

SSAS提供动态管理视图(DMV)来获取实例运行状态,执行以下MDX查询即可直接获取正在处理的表格模型:

SELECT
    [DatabaseName],
    [Command],
    [StartTime],
    [SessionID],
    [Status],
    [ElapsedTime]
FROM $SYSTEM.DISCOVER_SESSIONS
WHERE [Command] LIKE '%Process%'
  AND [Status] = 'Running'
  • $SYSTEM.DISCOVER_SESSIONS包含所有当前会话的详细信息
  • 筛选Command含Process且Status为Running的记录,就能精准定位正在处理的模型
  • 额外的ElapsedTime字段可以查看任务已经运行的时长

方法三:PowerShell脚本自动化查询

如果需要批量检查或自动化监控,可以用PowerShell结合ADOMD.NET实现:

# 加载ADOMD.NET程序集(路径根据SSAS版本调整,示例为SQL Server 2019)
Add-Type -Path "C:\Program Files\Microsoft SQL Server\MSAS15.MSSQLSERVER\OLAP\bin\Microsoft.AnalysisServices.AdomdClient.dll"

# 连接到SSAS实例
$connectionString = "Data Source=你的SSAS实例名;"
$connection = New-Object Microsoft.AnalysisServices.AdomdClient.AdomdConnection($connectionString)
$connection.Open()

# 执行DMV查询
$command = $connection.CreateCommand()
$command.CommandText = @"
SELECT [DatabaseName], [Command], [StartTime], [SessionID], [ElapsedTime]
FROM $SYSTEM.DISCOVER_SESSIONS
WHERE [Command] LIKE '%Process%' AND [Status] = 'Running'
"@
$reader = $command.ExecuteReader()

# 输出查询结果
while ($reader.Read()) {
    Write-Host "模型名称: $($reader["DatabaseName"])"
    Write-Host "处理命令: $($reader["Command"])"
    Write-Host "启动时间: $($reader["StartTime"])"
    Write-Host "已运行时长: $($reader["ElapsedTime"])"
    Write-Host "会话ID: $($reader["SessionID"])"
    Write-Host "-------------------------"
}

# 清理资源
$reader.Close()
$connection.Close()

注意:SSAS版本不同,ADOMD.NET程序集的路径会有差异,比如MSAS16对应SQL Server 2022,需要根据实际环境调整路径。

内容的提问来源于stack exchange,提问作者Eric Mamet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:20:21