SQL Server 2008 中 Analysis Services 功能的重大更改
本主题介绍 Analysis Services 中的重大更改。这些更改可能导致基于 SQL Server 的早期版本的应用程序、脚本或功能无法继续使用。在进行升级时可能会遇到这些问题。有关详细信息,请参阅使用升级顾问来准备升级。
SQL Server 2008 中 Analysis Services 的重大更改
下表列出将 SQL Server 2005 Analysis Services (SSAS)Analysis Services 数据库升级为 SQL Server 2008 时可能遇到的问题。
问题类型 |
问题说明 |
---|---|
shallow exists 函数与包含枚举成员或枚举集叉积的命名集结合使用的方式已更改。 |
在 SQL Server 2005 Analysis Services (SSAS) 中,shallow exists 函数不可用于包含枚举成员或枚举集叉积的命名集。若要实现与 SQL Server 2005 Analysis Services (SSAS) 的原始发布版本和 SP1 的向后兼容,可将配置属性 ConfigurationSettings\OLAP\Query\NamedSetShallowExistsMode 设置为 1;若要实现与 SQL Server 2005 Analysis Services (SSAS) SP2 的向后兼容,则应将其设置为 2。 |
VBA 函数对 Null 值和空值的处理方式已与 SQL Server 2005 Analysis Services (SSAS) 中的方式有所不同。 |
在 SQL Server 2005 Analysis Services (SSAS) 中,如果将 Null 值或空值用作参数,VBA 函数将返回 0 或空字符串。在 SQL Server 2008 中,它们将返回 Null。 |
迁移向导将因默认情况下不安装 DSO 而失败。 |
默认情况下,SQL Server 2008 不会安装 DSO(决策支持对象)向后兼容组件。默认情况下将安装向后兼容包,但将禁用该包的 DSO 组件。由于 SQL Server Analysis Services 迁移向导依赖此组件,因此在未安装该组件的情况下该迁移向导将失败。若要安装 DSO 组件,请执行下列操作:
迁移完成后,您可以按照上述步骤删除 DSO,不过需将 DSO 的选项更改为“此功能将不可用”。 如果未安装向后兼容包,则可以从 SQL Server 2008 分发媒体进行安装。请注意,存在针对各目标体系结构的版本 (x86、x64、ia64)。可在以下位置找到这些版本: x86\Setup\x86\SQLServer2005_BC.msi x64\Setup\x64\SQLServer2005_BC.msi ia64\Setup\ia64\SQLServer2005_BC.msi |
不建议将分区位置放置在 Data 文件夹中。 |
服务器管理 Data 文件夹,并将在创建、删除和更改对象时创建或删除相应文件夹。因此,强烈建议不要在 Data 文件夹内指定分区存储位置,尤其是不要在数据库、多维数据集和维度的子文件夹中指定。尽管服务器允许您使用 Create 或 Alter 命令来执行此操作,但它会显示警告。如果您将 Data 文件夹中包含有分区存储位置的数据库从 SQL Server 2005 Analysis Services 升级到 SQL Server 2008 Analysis Services,则此升级操作将成功完成。还原或同步操作将需要您将分区存储位置移出 Data 文件夹。 |
SQL Server 2005 中 Analysis Services 的重大更改
下表列出将 SQL Server 2000Analysis Services 数据库升级为 SQL Server 2008 时可能遇到的问题。
问题类型 |
问题说明 |
---|---|
不迁移依赖于链接对象的对象 |
在 MicrosoftSQL Server 2008Analysis Services 中,升级顾问不迁移链接多维数据集和链接维度。因此,无法迁移引用链接多维数据集或链接维度的对象,原因是无法迁移这种对象所基于的链接对象。例如,无法迁移基于链接多维数据集的 OLAP 挖掘模型,这是因为无法迁移挖掘模型所基于的链接多维数据集。 |
如果将多个层次结构迁移到同一个维度中,则 Autoexist 可以产生不同的查询结果 |
将多个层次结构或虚拟维度迁移到 MicrosoftSQL Server 2008Analysis Services 的同一维度中时,查询此维度中包含的已迁移层次结构与迁移前查询 SQL Server 2000Analysis Services 中的该层次结构所产生的结果可能不同,这是因为 Autoexist 功能会自动从包含已迁移层次结构成员的集的任何交叉联接中删除不存在于该维度中的元组。若要解决此问题,应检查在同一维度中涉及多个层次结构的计算。 |
使用禁用的级别时,浏览体验会不同 |
从 SQL Server 2005Analysis Services 开始,不再支持在层次结构中包含隐藏的或禁用的级别。隐藏的或禁用的级别分别迁移为可见的和启用的级别。计算时如果涉及包含此类级别的层次结构,可能会返回意外结果。升级后,请检查并验证涉及以前包含隐藏或禁用级别的层次结构的计算。 |
存入桶对于分组级别而言可能不同 |
从 MicrosoftSQL Server 2005 Analysis Services (SSAS) 开始,自动分组可能会返回一组不同的成员组。依赖这些成员组的计算可能会返回意外的结果。升级后,请检查并验证依赖于成员组的计算。 |
从非特定语言到特定语言的转换可能会产生意外的结果 |
在 SQL Server 2000Analysis Services 以及早期版本中,Analysis Services 只使用非特定语言标识符,也称为主要语言标识符,例如 LANG_ENGLISH (0x09) 表示英语,LANG_CHINESE (0x04) 表示中文。 为支持翻译和排序规则选项,Analysis Services 现在使用特定语言标识符,这些标识符是主要语言标识符与用于特定区域性的子语言标识符的组合。例如,主要语言标识符 LANG_ENGLISH (0x09) 和子语言标识符 SUBLANG_ENGLISH_AUS (0x03) 的组合表示澳大利亚英语。 从非特定语言迁移到特定语言的标识符会更改预期的翻译和排序规则行为,从而导致意外的结果。升级后,请检查并验证语言标识符发生了更改的对象,例如维度、层次结构和成员。 |
不支持多维数据集角色命令 |
MicrosoftSQL Server 2008Analysis Services 不支持针对多维数据集角色的命令对象,因而不会从早期版本迁移命令。 |
自定义级别公式以不同方式聚合 |
如果多维数据集包含带有自定义级别公式的维度,并且还包含前后都带有自定义成员公式和/或一元运算符的维度,那么该多维数据集可能会返回与早期版本的 Analysis Services 不同的结果。这是因为计算优先规则已更改。 |
自定义成员公式和自定义汇总公式会被迁移到 MDX 脚本中 |
在 Analysis Services 的早期版本中,支持维度和级别的以下属性:自定义汇总公式、自定义成员公式、所有成员公式和自定义级别公式。在 SQL Server 2005Analysis Services 中,这些属性已由多维表达式 (MDX) 脚本中支持的功能所取代,因而在迁移期间这些属性会升级到 MDX 脚本。 |
不迁移自定义聚合 |
在 Analysis Services 的早期版本中手动生成的聚合,在 MicrosoftSQL Server 2008Analysis Services 中不会迁移。仅迁移由存储设计向导生成的聚合。若要解决此问题,请使用 XMLA 脚本手动创建聚合。 |
数据成员始终存在于父子维度中 |
Analysis Services 的早期版本提供了不在父子维度中包括数据成员的选项。在 Analysis Services 的早期版本中,维度的 DataMembers 属性支持三个选项:None、Hidden 或 Visible。None 选项在 MicrosoftSQL Server 2008Analysis Services 中不可用。数据成员始终包含在父属性中。若要在父子维度中隐藏数据成员,可以将维度的 DataMembers 属性设为 Hidden。父特性的 MembersWithData 属性仅支持两个选项:NonLeafDataHidden 或 NonLeafDataVisible。 |
不支持数据库角色命令 |
MicrosoftSQL Server 2008Analysis Services不支持数据库角色的命令对象,因而不会从 Analysis Services 的早期版本迁移相关命令。 |
DefaultMember 已迁移到 MDX 脚本中 |
在 Analysis Services 的早期版本中,维度的默认成员由多维表达式 (MDX)(包含在维度的 DefaultMember 属性中)指定。在 MicrosoftSQL Server 2005 Analysis Services (SSAS) 中,此属性已由 MDX 脚本中支持的功能所取代,因而在迁移期间该属性会升级到 MDX 脚本。 |
迁移时对维度和层次结构的重命名可能会导致不同的查询结果 |
SQL Server 2000Analysis Services 中的维度层次结构在内部表示为单独的维度,并使用命名约定标识。迁移到 MicrosoftSQL Server 2008 可能会为每个维度层次结构创建一个单独的维度,并用新名称命名,而不是将父维度下的维度层次结构组合在一起,这是因为 auto-exist 会导致安全规则不同于 Analysis Services 的早期版本中应用的安全规则。 |
不迁移钻取设置 |
尽管 MicrosoftSQL Server 2008Analysis Services 中存在钻取,但不会迁移 Analysis Services 的早期版本中的钻取设置。 |
迁移后隐藏的级别是可见的 |
Analysis Services 不再支持在层次结构中包含隐藏的或禁用的级别。隐藏的或禁用的级别分别迁移为可见的和启用的级别。计算时如果涉及包含此类级别的层次结构,可能会返回意外结果。 |
无效对象导致迁移失败 |
数据库包含无效对象。如果数据库包含无效对象,则迁移无法完成。 |
不迁移链接多维数据集 |
Analysis Services 的早期版本支持链接多维数据集。在 MicrosoftSQL Server 2005 Analysis Services (SSAS) 中,此功能已由链接维度和链接度量值组所取代。 |
在迁移期间可能会更改成员的唯一名称 |
Analysis Services 在迁移期间会尝试保留成员的唯一名称,但是在某些情况下会更改成员的唯一名称。如果更改了成员的唯一名称,则客户端应用程序、多维表达式 (MDX) 表达式和其他依赖于成员唯一名称的属性可能会产生意外的结果。 |
不支持 ODBC 数据源 |
尽管 Analysis Services 的早期版本允许使用 ODBC 数据源,但现在已不再支持此功能。 |
不迁移远程分区 |
远程分区不会从 MicrosoftSQL Server 2000Analysis Services 迁移到 MicrosoftSQL Server 2008Analysis Services。可将服务器升级到 SQL Server 2008Analysis Services,然后手动创建远程分区。 |
不支持某些挖掘模型算法参数 |
Analysis Services 的早期版本支持在 Microsoft 决策树算法中使用 MINIMUM_LEAF_CASES 参数,以及在 Microsoft 群集算法中使用 MINIMUM_CLUSTER_CASES 参数。从 SQL Server 2005Analysis Services 开始,这两个参数均重命名为 MINIMUM_SUPPORT。如果在使用早期版本的 Analysis Services 创建的挖掘模型中使用了这些参数,则不会迁移这些参数。 |
某些 MDX 函数的行为发生了更改 |
由于 MicrosoftSQL Server 2005 Analysis Services (SSAS) 中对多维表达式 (MDX) 语言进行了增强和更改,因此不再支持某些 MDX 函数,或者这些函数的行为与 Analysis Services 的早期版本中相比发生了更改。 |
CREATE KPI 命令引入了一个新关键字 |
CREATE KPI 命令引入了一个新关键字 KPI。如果现有对象的名称为 KPI,则该新关键字会与之冲突。 |
不支持维度安全性的顶级 |
在 Analysis Services 的早期版本中,您可以指定维度安全性,使用户看到的顶级与层次结构的顶级不同。迁移后,使用顶级设置保护的成员将可见。 |
不迁移也不注册 UDF 源 .DLL |
不迁移在 Analysis Services 的早期版本中注册的用户定义函数 (UDF)。 |
有限支持非父子层次结构上的一元运算符 |
从 MicrosoftSQL Server 2005 Analysis Services (SSAS) 开始,除非层次结构中以级别为源的属性之间存在属性关系,否则不支持父子层次结构之外的层次结构上的一元运算符。 |
不支持虚拟多维数据集 |
Analysis Services 的早期版本支持虚拟多维数据集,即一个或多个常规或链接多维数据集中的度量值和维度子集的组合视图。在 MicrosoftSQL Server 2005 Analysis Services (SSAS) 中,此功能已由链接度量值组替换。在升级过程中,虚拟多维数据集将作为链接度量值组进行迁移。 |
不迁移写回表内容 |
在 MicrosoftSQL Server 2005 Analysis Services (SSAS) 中,已经更新了由 Analysis Services 的早期版本生成的写回表的结构。由 Analysis Services 的早期版本生成的写回表中的数据无法迁移到新的写回表结构中。 |