SSAS多维数据集处理日志



SSAS立方体处理(不是错误,不是飞行记录器)日志存储在哪里?

我们有一个运行SQL Server分析服务命令的SQL代理作业。其中有一些DMX处理每个维度,然后处理多维数据集数据库(包含两个多维数据集)

我想知道每个不同的查询花了多长时间。每个维度一个查询,每个度量组一个查询

这个立方体花了20分钟,现在花了2小时。

我们使用的是SSAS 2008 R2

我已经找了很长时间,但据我所知,没有这样的日志。

不是

问题与这个重复:

SSAS中的Error Log记录

获取SSAS多维数据集上最后一个进程的输出

我不想使用分析器。我想知道每个查询至少在最后一个多维数据集构建中花费了多长时间。如果我以交互方式运行,我可以看到所有这些信息。如何使它在从作业运行时记录此信息?

有几个选项。您可以继续按照您的方式处理多维数据集,但是开始记录所有处理事件。除了Profiler GUI之外,还有三种主要的方法:

  1. 服务器端跟踪将.trc文件写入SSAS服务器上的磁盘,开销很小:http://blogs.msdn.com/b/karang/archive/2009/11/02/sql-2005-sql-2008-analysis-services-server-side-tracing.aspx然后你可以将它加载到SQL server中,然后通过PowerShell进行分析:http://www.bp-msbi.com/2012/02/counting-number-of-queries-executed-in-ssas/

  2. 安装一个名为ASTrace的社区维护服务,它使用Profiler api(没有GUI)并将您选择的Profiler事件直接实时写入SQL Server。https://github.com/Microsoft/Analysis-Services/tree/master/AsTrace

  3. 记录XEvents并稍后进行分析:http://blog.crossjoin.co.uk/2012/05/05/using-xevents-in-ssas-2012/或者:https://francescodechirico.wordpress.com/2012/08/03/identify-storage-engine-and-formula-engine-bottlenecks-with-new-ssas-xevents-5/

所有这些选项将记录所有处理事务。您可以选择要记录哪些事件(例如,处理事件而不是查询)。

但是另一种选择是使用会话跟踪。您可以在SQL Agent中停止使用"SQL Server分析服务命令"步骤类型,并开始使用PowerShell步骤类型,并执行如下操作。这个例子是从PowerShell运行一个SSAS备份,带有SessionTrace来观察所有的"分析器"事件,只是为了一个会话:https://gallery.technet.microsoft.com/scriptcenter/Backup-Ssas-Databases-with-da62b084

最新更新