多维数据库的兼容级别 (Analysis Services)

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

在 SQL Server Analysis Services 中,数据库兼容性级别属性确定数据库的功能级别。 兼容级别对于每个模型类型都是唯一的。 例如,兼容级别 1100 具有不同的含义,具体取决于该数据库是多维数据库还是表格数据库。

本主题仅描述多维数据库的兼容级别。 有关表格解决方案的详细信息,请参阅 Analysis Services 中表格模型的兼容级别

注意

表格模型具有其他一些不适用于多维模型的数据库兼容级别。 多维模型不具有兼容级别 1103 。 有关适用于表格解决方案的兼容级别 1103 的详细信息,请参阅 SQL Server 2012 SP1 中表格模型的新增功能和兼容级别

多维数据库的兼容级别

目前,唯一因功能级别而异的多维数据库行为是字符串存储体系结构。 通过提高数据库兼容级别,可以覆盖度量值和维度的最大 4 GB 字符串存储限制。

对于多维数据库, CompatibilityLevel 属性的有效值包括以下:

设置 说明
1050 此值在脚本或工具中不可见,但它对应于在 SQL Server 2005 (9.x) 、SQL Server 2008 或 SQL Server 2008 R2 中创建的数据库。 对于任何没有显式设置 CompatibilityLevel 的数据库,都将在 1050 级别隐式运行。
1100 这是在 SQL Server 2012 (11.x) 或 SQL Server 2017 中创建的新数据库的默认值。 还可以为在早期版本的 SQL Server Analysis Services 中创建的数据库指定它,以允许使用仅在此兼容级别支持的功能, (即增加维度属性的字符串存储或包含字符串数据) 的非重复计数度量值。

CompatibilityLevel 设置为 1100 的数据库将获得一个附加属性 ( StringStoresCompatibilityLevel),该属性可以为分区和维度选择其他字符串存储。

警告

将数据库兼容级别设置为更高级别是不可逆的。 在你将兼容级别增加到 1100后,必须继续在更高版本的服务器上运行该数据库。 你无法回滚到 1050。 不能在早于 SQL Server 2012 (11.x) 或 SQL Server 2017 的服务器版本上附加或还原 1100 数据库。

先决条件

SQL Server 2012 (11.x) 中引入了数据库兼容性级别。 必须具有 SQL Server 2012 (11.x) SQL Server Analysis Services 或更高版本才能查看或设置数据库兼容性级别。

数据库不能为本地多维数据集。 本地多维数据集不支持 CompatibilityLevel 属性。

数据库必须在以前版本的 (SQL Server 2008 R2 或更早版本中创建,) ,然后附加或还原到 SQL Server 2012 (11.x) SQL Server Analysis Services 或更高版本的服务器。 部署到 SQL Server 2012 的数据库已在 1100 级别,无法降级到更低级别。

确定多维数据库的现有数据库兼容级别

查看或修改数据库兼容级别的唯一方法就是通过 XMLA。 您可以在 SQL Server Management Studio 中查看或修改指定您的数据库的 XMLA 脚本。

如果在数据库的 XMLA 定义中搜索属性 CompatibilityLevel ,没有任何结果,则该数据库很可能已位于 1050 级别。

下一节中提供了有关查看和修改 XMLA 脚本的说明。

在 SQL Server Management Studio 中设置数据库兼容级别

  1. 在提高兼容级别之前,请备份该数据库,以备稍后您要撤消更改。

  2. 使用 SQL Server Management Studio 连接到承载数据库的 SQL Server 2017SQL Server Analysis Services 服务器。

  3. 右键单击数据库名称,指向“编写数据库脚本为”,指向“ALTER to”,然后选择“新查询编辑器窗口”。 数据库的 XMLA 表示形式将在新窗口中打开。

  4. 复制以下 XML 元素:

    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>  
    
  5. 将其粘贴到 </Annotations> 结尾元素之后、 <Language> 元素之前。 XML 应类似以下示例:

    </Annotations>  
    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>  
    <Language>1033</Language>  
    
  6. 保存文件。

  7. 若要运行脚本,请在“查询”菜单上单击 “执行” ,或按 F5。

要求相同兼容级别的支持的操作

以下操作要求源数据库共享相同的兼容级别。

  1. 只有在两个不同的数据库共享相同的兼容级别时,才支持从这两个不同的数据库合并分区。

  2. 使用来自其他数据库的链接维度要求相同的兼容级别。 例如,如果要在 SQL Server 2012 (11.x) 数据库中使用 SQL Server 2008 R2 数据库中的链接维度,则必须将 SQL Server 2008 R2 数据库移植到 SQL Server 2012 (11.x) 服务器,并将兼容级别设置为 1100

  3. 仅对于共享相同版本和数据库兼容级别的服务器,才支持同步服务器。

后续步骤

提高数据库兼容性级别后,可以在 SQL Server Data Tools 中设置 StringStoresCompatibilityLevel 属性。 这样将增大度量值和维度的字符串存储空间。 有关此功能的详细信息,请参阅 配置维度和分区的字符串存储

另请参阅

备份、还原和同步数据库 (XMLA)