解决方案的性能和可用性取决于许多因素,包括基础硬件的功能、服务器部署的拓扑、解决方案的特征(例如,分区分布在多个服务器或使用需要直接访问关系引擎的 ROLAP 存储)、服务级别协议和数据模型的复杂性。
内存和处理器要求
在以下情况下,Analysis Services 需要更多的内存和处理器资源:
处理大型或复杂多维数据集时。 这些多维数据集比小型或简单的需要更多的内存和处理器资源。
单个数据库中的多维数据集数增加时。
当 Analysis Services 的单个实例中的数据库数增加时。
当一台计算机上的分析服务实例数量增加时。
同时访问 Analysis Services 资源的用户数增加时。
Analysis Services 可用的内存和处理器资源量因 SQL Server 版本、作系统、硬件功能以及使用的是虚拟处理器还是物理处理器而异。 有关详细信息,请参阅以下链接:
磁盘空间要求
Analysis Services 安装和与对象处理相关的任务需要不同的磁盘空间量。 以下列表描述了这些要求。
立方体
具有大型事实数据表的多维数据集需要比具有小型事实数据表的多维数据集更多的磁盘空间。 同样,尽管在较小的范围内,具有许多大型维度的多维数据集需要比具有较少维度成员的多维数据集更多的磁盘空间。 通常,可以预期 Analysis Services 数据库需要大约 20% 的空间量才能用于存储在基础关系数据库中的相同数据。
聚合
聚合需要额外的空间,这个空间与添加的聚合数量成正比——添加的聚合越多,所需的空间就越大。 如果避免创建不需要的聚合,聚合所需的额外磁盘空间通常不应超过存储在基础关系数据库中的数据大小的大约 10%。
数据挖掘
默认情况下,挖掘结构将用于训练的数据集缓存到磁盘中。 若要从磁盘中删除此缓存数据,可以在挖掘结构对象上使用 “进程清除结构 处理”选项。 有关详细信息,请参阅处理要求和注意事项(数据挖掘)。
对象处理
在处理过程中,Analysis Services 将它正在处理的对象的副本存储在磁盘上的处理事务中,直到处理完成。 处理完成后,处理的对象副本将替换原始对象。 因此,必须为要处理的每个对象的第二个副本提供足够的额外磁盘空间。 例如,如果计划在单个事务中处理整个多维数据集,则需要足够的硬盘空间来存储整个多维数据集的第二个副本。
可用性注意事项
在 Analysis Services 环境中,由于硬件或软件故障,多维数据集或挖掘模型可能无法进行查询。 多维数据集可能不可用,因为需要进行处理。
在硬件或软件故障时提供可用性
由于各种原因,硬件或软件可能会失败。 但是,维护 Analysis Services 安装的可用性不仅在于排查这些故障的来源,还涉及提供替代资源,使用户能够在发生故障时继续使用系统。 群集和负载均衡服务器通常用于提供在发生硬件或软件故障时维护可用性所需的备用资源。
若要在硬件或软件故障时提供可用性,请考虑将 Analysis Services 部署到故障转移群集。 在故障转移群集中,如果主节点因任何原因发生故障或必须重新启动,则 Microsoft Windows 群集会故障转移到辅助节点。 故障转移后(非常快速地发生),当用户运行查询时,他们将访问在辅助节点上运行的 Analysis Services 实例。 有关故障转移群集的详细信息,请参阅 Windows Server 技术:故障转移群集。
可用性问题的另一个解决方案是将 Analysis Services 项目部署到两台或更多个生产服务器。 然后,可以使用 Windows 服务器的网络负载均衡 (NLB) 功能将生产服务器合并到单个群集中。 在 NLB 群集中,如果群集中的服务器由于硬件或软件问题而不可用,则 NLB 服务会将用户查询定向到那些仍然可用的服务器。
处理结构更改时提供可用性
对多维数据集的某些更改可能会导致多维数据集在处理之前不可用。 例如,如果对多维数据集中的维度进行结构更改,即使重新处理维度,也必须处理使用修改后的维度的每个多维数据集。 在处理这些多维数据集之前,用户无法查询它们,也不能查询基于具有修改维度的多维数据集的任何挖掘模型。
若要在处理可能影响 Analysis Services 项目中一个或多个多维数据集的结构更改时保持系统可用性,请考虑引入一个过渡服务器,并使用同步数据库向导。 此功能允许更新暂存服务器上的数据和元数据,然后执行生产服务器和暂存服务器的联机同步。 有关详细信息,请参阅 同步的“Analysis Services”数据库。
若要以透明方式处理源数据的增量更新,请启用主动缓存。 主动缓存使用新源数据更新多维数据集,而无需手动处理,也不会影响多维数据集的可用性。 有关详细信息,请参阅主动缓存(分区)。
可伸缩性注意事项
同一台计算机上Microsoft SQL Server 和 Analysis Services 的多个实例可能会导致性能问题。 若要解决这些问题,一个选项可能是增加服务器上的处理器、内存和磁盘资源。 但是,可能还需要跨多台计算机缩放 SQL Server 和 Analysis Services 的实例。
跨多台计算机扩展 Analysis Services
可以通过多种方式在多台计算机上扩展 Analysis Services 的安装。 以下列表中描述了这些选项。
如果单个计算机上有多个 Analysis Services 实例,则可以将一个或多个实例移到另一台计算机。
如果单个计算机上有多个 Analysis Services 数据库,则可以将一个或多个数据库移到单独的计算机上的 Analysis Services 自己的实例上。
如果一个或多个关系数据库向 Analysis Services 数据库提供数据,可以将这些数据库移动到单独的计算机。 在移动数据库之前,请考虑 Analysis Services 数据库与其基础数据库之间存在的网络速度和带宽。 如果网络速度缓慢或拥堵,将基础数据库移到单独的计算机会降低处理性能。
如果处理会影响查询性能,但在查询负载降低期间无法处理,请考虑将处理任务移动到过渡服务器,然后执行生产服务器和暂存服务器的联机同步。 有关详细信息,请参阅 同步 Analysis Services 数据库。 还可以使用远程分区在 Analysis Services 的多个实例之间分配处理。 处理远程分区使用远程服务器上的处理器和内存资源,而不是本地计算机上的资源。 有关远程分区管理的信息,请参阅创建和管理远程分区(Analysis Services)。
如果查询性能不佳,但无法增加本地服务器上的处理器和内存资源,请考虑将 Analysis Services 项目部署到两台或更多生产服务器上。 然后,可以使用网络负载均衡(NLB)将服务器合并到单个群集中。 在 NLB 群集中,查询会自动分布在 NLB 群集中的所有服务器中。