多维数据集存储(Analysis Services - 多维数据)
存储可能仅包括多维数据集元数据,也可能包括事实数据表中的所有源数据以及通过与度量值组相关的维度所定义的聚合。 存储的数据数量取决于所选择的存储模式和聚合数。 存储的数据的量会直接影响查询性能。 Microsoft SQL Server Analysis Services使用多种技术来最大程度地减少多维数据集数据和聚合存储所需的空间:
使用存储选项,您可以选择最适合于多维数据集数据的存储模式和位置。
通过一个复杂的算法设计有效的汇总聚合,在不牺牲速度的前提下将存储要求降至最低。
不为空单元分配存储空间。
存储按分区进行定义,并且对于多维数据集中的每个度量值组,至少存在一个分区。 有关详细信息,请参阅 分区 (Analysis Services - 多维数据) 、 分区存储模式和处理、 度量值和度量值组和 在多维模型中创建度量值和度量值组。
分区存储
度量值组的存储空间可以分成多个分区。 使用分区,您可以将度量值组分散到单个服务器或多个服务器上的离散段中,并优化存储和查询性能。 度量值组中的每个分区都可基于不同的数据源,并使用不同的存储设置进行存储。
您可以在创建分区时为分区指定数据源。 还可以更改任何现有分区的数据源。 度量值组可以进行垂直分区,也可以进行水平分区。 垂直分区的度量值组中的每个分区都基于单个源表的筛选视图。 例如,如果度量值组所基于的表包含若干年的数据,则可以为每年的数据创建单独的分区。 相反,水平分区的度量值组中的每个分区都基于单独的表。 如果数据源使用单独的表存储每年的数据,则可以使用水平分区。
分区最初使用其所属度量值组的存储设置进行创建。 存储设置确定详细信息和聚合数据是以多维格式存储在 Analysis Services 实例上、以关系格式存储在源服务器上,还是同时存储这两者。 存储设置还确定是否使用主动缓存自动处理对 Analysis Services 上存储的多维数据的源数据更改。
用户看不到多维数据集的分区。 但是,为不同分区选择的存储设置可能影响到数据的即时性、所用磁盘空间的数量和查询性能。 分区可以存储在 Analysis Services 的多个实例上。 这提供了一种用于多维数据集存储的群集方法,并在 Analysis Services 服务器之间分配工作负载。 有关详细信息,请参阅 分区存储模式和处理、 远程分区和 分区 (Analysis Services - 多维数据) 。
链接度量值组
在 Analysis Services 的不同实例上存储多维数据集的多个副本可能需要大量磁盘空间,但通过将度量值组的副本替换为链接的度量值组,可以大大减少所需的空间。 链接的度量值组基于另一个 Analysis Services 数据库中同一个或不同实例上的多维数据集中的度量值组。 链接度量值组还只能与来自同一源多维数据集的链接维度一起使用。 链接维度和度量值组都使用源多维数据集的聚合,并且对它们自己的聚合没有数据存储要求。 因此,通过在一个数据库中维护源度量值组和维度,而在其他数据库的多维数据集中创建链接多维数据集和维度,您可以因存储所用空间的大大降低而节约大量磁盘空间。 有关详细信息,请参阅 链接度量值组。