首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得SSAS表格立方体的最后处理时间戳?

如何获得SSAS表格立方体的最后处理时间戳?
EN

Stack Overflow用户
提问于 2015-11-25 20:25:04
回答 2查看 3K关注 0票数 1

在SSMS中,我已经连接到一个SSAS表格立方体。当我查看属性屏幕时,我会看到11/24/2015 2:59:20 PM的最后处理时间戳。

如果我使用SELECT LAST_DATA_UPDATE FROM $system.MDSchema_Cubes,我会看到11/25/2015 12:13:28 PM的时间戳(如果对时区进行调整)。

如果我打开多维数据集中的一个表的分区屏幕,我会看到最后处理的时间戳是11/25/2015 12:13:28 PM,它与DMV中的值匹配。

我需要BISM的最后处理时间戳,而不是数据库属性屏幕上的时间戳,而不是来自稍后处理的分区的时间戳。

有办法以编程的方式实现吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 23:15:00

在查看Analysis存储过程程序集中的代码之后,我能够将一个powershell脚本组合在一起,得到我所寻找的日期。以下是代码:

代码语言:javascript
复制
#we want to always stop the script if any error occurs
$ErrorActionPreference = "Stop"
$error.Clear()

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") | Out-Null

$databases = @('BISM1', 'BISM2')
$servers = @('Server1\BISM', 'Server2\BISM')

function Get-BISMLastProcessed
{
  param(
    [string] $connStr
  )
  Begin {
    $server = New-Object Microsoft.AnalysisServices.Server
    $server.Connect($connStr)
  }
  Process {
    Try {
    $database = $server.Databases.GetByName($_)
    Write-Host "  Database [$($database.Name)] was last processed $($database.LastProcessed)"
    }
    Catch [System.Exception] {
      Write-Host $Error[0].Exception
    }
    Finally {
      if ($database -ne $null) {
          $database.Dispose()
      }    
    }
  }
  End {
    $server.Dispose()
  }
}


foreach ($server in $servers) {
  $connectStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BISM1;Data Source=$server"
  Write-Host "Server [$server]"
  $databases | Get-BISMLastProcessed $connectStr
  Write-Host "----------------"
}

研究结果如下:

代码语言:javascript
复制
Server [Server1\BISM]
  Database [BISM1] was last processed 11/30/2015 12:25:48
  Database [BISM2] was last processed 12/01/2015 15:53:56
----------------
Server [Server2\BISM]
  Database [BISM1] was last processed 11/30/2015 12:19:32
  Database [BISM2] was last processed 11/02/2015 23:46:34
----------------
票数 1
EN

Stack Overflow用户

发布于 2015-11-26 14:45:32

可以使用可以从这里下载的Analysis存储过程程序集。

获得对应于Analysis版本的程序集文件后,通过SSMS连接到实例。

  1. 查找您的数据库(数据库立方体)
  2. 转到程序集文件夹
  3. 右击和New Assembly...
  4. 浏览并选择程序集。
  5. 设置文档程序集中所描述的权限。
  6. 导入程序集后,使用此MDX查询获取最后处理的时间戳。

--

代码语言:javascript
复制
with member [Measures].[LastProcessed] as ASSP.GetCubeLastProcessedDate()
select [Measures].[LastProcessed] on 0
from [Armetales DWH]

如果这能帮到你就告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33925805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档