DBA对SSAS有什么了解?


40

我已经看过很多有关SSAS业务方面的材料,但是关于管理和管理的重要方面却不是很多。

从管理SQL Server Analysis Services实例的角度来看,工作中的DBA必须了解什么才能正确有效地管理SSAS?

Answers:


50

SSAS for DBA快速概述

因此,您是SQL Server DBA,并且刚刚继承了一些多维数据集以进行管理。关于SSAS管理的速成课程似乎是对的。

从管理的角度来看,SSAS是一个相当简单的应用程序,如果资源匮乏的话。它比DBMS平台更简单,尽管在某些方面有所不同。此外,您可能还需要处理一些管理任务,例如针对SSAS的基于使用的优化。

备份您的配置文件

所有配置数据都存在于名为的文件中msdmsrv.ini。这是一个XML文件。如果通过SSMS修改配置(连接到服务器,右键单击服务器,选择属性),则可以设置将在启动时中断服务器的选项。msmdsrv.ini在玩任何游戏之前,请先复制一份。

重要参数

记忆: SSAS是圣经中的记忆猪。如果可能,它喜欢64位版本,并拥有大量内存。参数“ Memory \ LowMemoryLimit”和“ Memory \ HighMemoryLimit”控制内存使用策略。LowMemoryLimit不是最小的内存分配。这是SSAS认为系统内存不足并开始从其缓存中清除内容的阈值。HighMemoryLimit是它将使用的绝对最大值。

请注意,SSAS将其数据存储在文件中(许多文件-它没有与文件组等效的任何机制),因此它大量使用O / S文件系统缓存这些文件。请注意,这些限制的默认值分别约为计算机内存的65%和80%,因此,如果您希望OLAP服务器与SQL Server实例共存,则需要将其关闭,以免与内存争用数据库服务器。

目录: 涉及的五个参数包括:DataDir,AllowedBrowsingFolders,BackupDir,LogDir和TempDir。DataDir和AllowedBrowsingFolders是最重要的。

  • AllowedBrowsingFolders影响OLAP服务器将放入其数据文件的文件夹列表。任何具有用户界面(例如,部署向导)的内容,都将您的选项限制在AllowedBrowsingFolders中的列表中。该值是用竖线('|')分隔的目录列表。

  • DataDir是文件的默认路径。如果打算将多维数据集分区到多个卷上,则需要适当地配置AllowedBrowsingFolders。

  • 服务器在LogDir中放置各种日志文件,包括飞行记录器和查询日志。飞行记录器日志用于故障排除,而OLAP查询日志用于基于使用情况的优化(稍后将对此进行详细介绍)。

  • TempDir是SSAS在处理过程中创建的临时文件的位置。如果您正在处理大量数据并遇到性能问题,则可以将其从数据转移到另一个卷中,从而可能会受益。

  • BackupDir就是上面所说的。

杂项: 一些杂项参数也可能是您感兴趣的。您可能需要调整的几套是:

  • DefaultMaxDrillthroughRows:这限制了钻取行集的大小。您可能需要摆弄这个以允许更多。

  • 线程/超时:您可能需要进行调整。我从来没有打扰。

这些是基础。您可能出于特定原因需要调整其他对象,但是您可以在此基础上做作业。

可在此处找到有关SSAS服务器属性的参考指南

运作方式

部署: 您可以在BIDS中编译项目,并获取一组可以使用部署向导进行部署的文件 您可能需要调整分区和其他一些内容的文件路径。

编程和分批管理任务:通过称为XML / A的Web服务API将命令发布到SSAS。Microsoft提供了用于发布MDX和XML / A内容的交互式工具。如果您必须将MDX嵌入XML / A命令中,请注意是否需要使用XML转义符&。这不是SSMS中的MDX编辑器和查询工具的问题。

脱机作业可以通过各种SSIS多维数据集处理任务,称为命令行工具ascmd.exe或称为AMO的.Net API来完成。您还可以获得各种powershell工具等。 ascmd.exe接收XML / A文件并将其发布到服务器。如果必须以编程方式提取文件,最好使用少量的.Net工具,而不是尝试从.cmd脚本处理XML文件。

操作指南进入这个更详细。

安全

SSAS的安全性非常简单。它具有全局“服务器”角色,对整个系统具有管理权限。不幸的是,您需要“服务器”来创建数据库,因此很可能需要将其授予您拥有的任何开发OLAP服务器上的开发人员。

其他安全性只能应用于单个多维数据集架构。您可以向架构中的角色授予对单个项目的读取,处理,追溯,回写等权限。OLAP模式上的角色可以在BIDS中定义,并与多维数据集一起部署。可以通过SSMS将AD组或用户分配给这些角色。

在此处可以看到有关如何以编程方式管理角色成员身份的示例

基于使用情况的优化

作为一名DBA,您可能会参与其中,但是首先需要对物理存储进行一些了解。SSAS通过计算和保留预构建的聚合以及基础数据来工作。如果通过命中聚合可以满足查询要求,则OLAP服务器将优先于基础数据使用该查询,因为聚合将涉及更少的I / O,因此检索数据的速度更快。

但是,您必须确定要计算哪些聚合(即,要为其生成汇总的尺寸属性的哪些组合)。BIDS有一个可以对此进行猜测并为您生成一些信息的工具。某些工具(例如BIDS助手)也将允许您手动编辑聚合。

基于使用情况的优化通过获取发布给服务器的实际查询的日志,然后使用该日志得出一组最适合那些查询的聚合来工作。作为DBA,您可以设置OLAP查询日志记录以捕获此数据,然后在多维数据集上运行优化。在此处可以找到有关设置查询日志的内容

用于执行此操作的工具称为“基于使用情况的优化向导”。 这位于SSMS中,可以通过在资源管理器中打开分区并在右键菜单上选择“基于使用情况的优化”来找到。

性能导向进入调整的更多细节。

MDX

MDX看起来有点像SQL,但工作方式却大不相同。关于“用于SQL程序员的MDX”的论文本身就是一个完整的主题。我建议您阅读其中的一些教程和/或阅读其中的书。另外,如果您有任何疑问,dba.se上的友好人员可以为您提供帮助。

MDX没有任何过滤行的概念。该语言有很多设置操作,可以算出要在查询1的各个轴上显示的内容,以及“ SELECT”。您可以使用with看起来像CTE的语句来定义度量和集。

可以在这里这里找到一些MDX入门编程资源(这一资源已经很老了而且很长)。也有一些关于该主题的好书。这样的问题对SSAS资源有很大的影响。

1尽管它确实具有非空运算符,但它们将结果限制为实际具有数据的组合。大多数MDX查询由定义要在轴上显示的切片组成,并且非空运算符对于避免查询返回空单元格的组合级别数量将是必需的。


5
很棒的信息。尤其是“您可以设置启动时会破坏服务器的选项”建议。
SqlACID 2012年

这是一个了不起的答案!谢啦!
玛丽安2012年

6

您可以从这份冗长的白皮书《SQL Server 2008 R2 Analysis Services操作指南》中获得有关SSAS管理的一些答案。这是开始的方式:

在本指南中,您将找到有关在生产环境中如何在SQL Server 2005,SQL Server 2008和SQL Server 2008 R2中测试和运行Microsoft SQL Server Analysis Services的信息。本指南的重点是如何在最大规模的多维数据集上测试,监视,诊断和消除生产问题。本文还提供有关如何配置服务器以实现最佳性能的指南。

显然,它是针对DBA /管理员的。如果您还使用SSAS开发应用程序,则还可以查看Analysis Services 2008性能指南白皮书。


谢谢,DaniSQL。我也找到了这篇论文,我可能应该在这个问题上提到它(对不起!),但是我正在寻找关于该主题的更温和的介绍,以及在此基于我们其他DBA经验的观点。
ivanmp 2012年

2
由于我自己不直接从事SSAS工作,因此我无法从经验中发言:-(我只是通过阅读上面提到的白皮书的某些部分来使自己熟悉,并且我还通过了几个月的实用语言培训进行了为期两天的培训回读的书amzn.to/za1ypP。开始,则Microsoft®SQLServer®2008的管理( -创作由培训师也是一个非常基本的介绍可以在这本书的第17章找到amzn.to/xnKAWw
DaniSQL
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.