我看过很多涵盖 SSAS 业务方面的材料,但关于行政和管理的重要方面的内容并不多。
从管理 SQL Server Analysis Services 实例的角度来看,工作的 DBA 必须了解哪些有关 SSAS 的知识才能正确有效地管理它?
Con*_*lls 50
因此,您是一名 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:这限制了钻取行集的大小。您可能需要解决这个问题以允许更多。
线程/超时:您可能需要调整这些。我从来不必费心。
这些是基础。出于特定原因,您可能需要调整其他人,但您可以为此做功课。
操作
部署: 您可以在 BIDS 中编译一个项目,并获得一组可以使用部署向导进行部署的文件。 您可能需要调整分区的文件路径和其他一些事情。
编程和批处理管理任务:通过名为 XML/A 的 Web 服务 API 向 SSAS 发出命令。Microsoft 提供了一个交互式工具来发布 MDX 和 XML/A connands。如果您必须在 XML/A 命令中嵌入 MDX,请注意需要使用 XML 转义,例如&. 这不是 SSMS 中的 MDX 编辑器和查询工具的问题。
可以通过各种 SSIS 多维数据集处理任务、称为命令行实用程序ascmd.exe或称为 AMO 的 .Net API来完成离线作业。您还可以获得各种 powershell 工具等。 ascmd.exe获取一个 XML/A 文件并将其发布到服务器。如果您必须以编程方式处理文件,您最好使用一些 .Net 工具而不是尝试从 .cmd 脚本操作 XML 文件。
该操作指南进入这个更详细。
安全
SSAS 的安全性相当简单。它有一个全局“服务器”角色,在整个系统中具有管理权限。不幸的是,您需要“服务器”来创建数据库,因此您很可能需要将其授予您拥有的任何开发 OLAP 服务器上的开发人员。
其他安全性只能应用于单个多维数据集架构。您可以向架构中的角色授予对单个项目的读取、处理、钻取、回写等权限。OLAP 模式上的角色可以在 BIDS 中定义并与多维数据集一起部署。AD 组或用户可以通过 SSMS 分配给这些角色。
基于使用的优化
作为一名 DBA,您很可能会参与其中,但首先要了解一些有关物理存储的背景知识。SSAS 的工作原理是计算和保存预先构建的聚合以及基础数据。如果可以通过命中聚合来满足查询,OLAP 服务器将优先使用它而不是基本数据,因为聚合将涉及更少的 I/O,因此检索数据会更快。
但是,您必须确定要计算哪些聚合(即要为其生成汇总的维度属性组合)。BIDS 有一个工具可以对此进行猜测并为您生成一些。某些工具(例如BIDS 助手)也允许您手动编辑聚合。
基于使用的优化的工作原理是记录向服务器发出的实际查询,然后使用该日志计算出一组最适合这些查询的聚合。作为 DBA,您可以设置 OLAP 查询日志记录来捕获此数据,然后在多维数据集上运行优化。可以在此处找到有关设置查询日志的简介。
执行此操作的工具称为“基于使用情况的优化向导”。 这存在于 SSMS 中,可以通过在资源管理器中打开分区并从右键单击菜单中选择“基于使用情况的优化”来找到。
在性能导向进入调整的更多细节。
MDX
MDX看起来有点像 SQL,但工作方式却大不相同。关于“面向 SQL 程序员的 MDX”的论文本身就是一个完整的主题。我建议通读一些关于它的教程和/或买一本关于它的书。另外,如果您有任何问题,dba.se 上的友好人员可以帮助您解决问题。
MDX 没有任何过滤行的概念。该语言有很多设置操作来计算在查询1的各个轴上显示的内容,加上“SELECT”。您可以使用with看起来有点像 CTE 的语句来定义度量和集。
一些介绍性的 MDX 编程资源可以在这里和这里找到(这个资源很老而且很长)。还有一些关于这个主题的好书;这个 SO 问题对 SSAS 资源有相当多的扇出。
1尽管它确实具有将结果限制为实际具有数据的组合的非空运算符。大多数 MDX 查询包括定义要在轴上显示的切片,并且需要非空运算符来避免查询返回空单元格的组合级别数量。
您可能会从这份冗长的白皮书SQL Server 2008 R2 分析服务操作指南中获得一些有关 SSAS 管理的答案。介绍是这样开始的:
在本指南中,您将找到有关如何在生产环境中的 SQL Server 2005、SQL Server 2008 和 SQL Server 2008 R2 中测试和运行 Microsoft SQL Server Analysis Services 的信息。本指南的重点是如何测试、监控、诊断和消除即使是最大比例的多维数据集上的生产问题。本白皮书还提供了有关如何配置服务器以获得最佳性能的指导。
显然,它是针对 DBA/管理员的。如果您还使用 SSAS 开发应用程序,您还可以查看Analysis Services 2008 性能指南白皮书
我无法从经验中说话,因为我自己不直接在 SSAS 上工作 - 我只是试图通过阅读我上面提到的白皮书的某些部分来让自己熟悉,几个月前我还进行了为期两天的 Pragmaticworks 培训和阅读由培训师撰写的书http://amzn.to/za1ypP。在本书的第 17 章 -开始 Microsoft® SQL Server&® 2008 管理中还可以找到一个非常基本的介绍。