从管理SQL Server Analysis Services实例的角度来看,工作中的DBA必须了解什么才能正确有效地管理SSAS?
#1 楼
SSAS for DBA的快速概述因此,您是SQL Server DBA,并且刚刚继承了一些多维数据集以进行管理。关于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没有任何过滤行的概念。该语言有很多设置操作,可以计算出要在query1的各个轴上显示的内容,以及“ SELECT”。您可以使用看起来像CTE的
with
语句来定义度量和集。可以在这里和这里找到一些MDX入门编程资源(这是一个非常古老且费时的方法)。也有一些关于该主题的好书。这样的SO问题对SSAS资源有很大的影响。大多数MDX查询由定义要在轴上显示的切片组成,并且非空运算符对于避免查询返回空单元格的组合级数量将是必需的。
#2 楼
您可以从这份冗长的白皮书《 SQL Server 2008 R2 Analysis Services操作指南》中获得有关SSAS管理的一些答案。这是介绍开始的方式:在本指南中,您将找到有关如何测试和运行SQL Server 2005 SQL Server中的Microsoft SQL Server Analysis Services的信息。 /> 2008,以及生产环境中的SQL Server 2008 R2。
本指南的重点是如何在最大规模的多维数据集上测试,监视,诊断和消除
生产问题。本文还
提供有关如何配置服务器以实现最佳性能的指南。
显然,它是针对DBA /管理员的。如果您还使用SSAS开发应用程序,则还可以查看《 Analysis Services 2008性能指南》白皮书
评论
谢谢,DaniSQL。我也找到了这篇论文,我可能应该在问题上提到它(对不起!),但是我正在寻找关于该主题的更温和的介绍,以及在此基于我们其他DBA经验的观点。
– ivanmp
2012年3月7日在21:12
我无法凭经验发表意见,因为我自己不直接从事SSAS工作:-(我只是通过阅读上面提到的白皮书的某些部分来使自己熟悉,并且我还通过几个月的实用语言培训进行了为期两天的培训返回并阅读由培训师编写的一本书amzn.to/za1ypP,也可以在本书的第17章中找到非常基本的介绍-Beginning,Microsoft®SQLServer®2008管理(amzn.to/xnKAWw)
–DaniSQL
2012年3月7日21:50
评论
出色的信息。尤其是“您可以设置启动时会破坏服务器的选项”建议。
–SqlACID
2012年3月7日23:38
这是一个了不起的答案!谢啦!
–玛丽安
2012年3月8日,12:05