Microsoft 将 Microsoft SQL Server 2012 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。
症状
当您在 Microsoft SQL Server 2012 Analysis Services (SSAS 2012)实例中运行多维表达式(MDX)查询时,查询可能失败,并且您收到以下错误消息:
内部错误:发生意外错误(文件 "pfiallocator"、行804、函数 "PFMemoryHolder:: RegisterMemoryHolder")。 完成执行
此外,在 SSAS 2012 日志文件夹中生成小型转储文件。 注意
-
如果生成的子多维数据集位于粒度以下且涉及多对多或引用维度关系,则通常会出现此问题。
-
任意形状集都是一个集合,不能轻松表示为两组属性成员的交叉结合集。 例如,"{(2004,美国),(2001,加拿大)}" 是任意形状集。
原因
出现此问题的原因是,当你运行查询时,SSA 2012 存储引擎尝试读取包含数据库元数据的 det 文件。 但是,由于元数据中的路径为 NULL,因此会导致 "症状" 部分中所述的问题。
解决方案
累积更新信息
SQL Server 2012
此问题的修补程序首次在 SQL Server 2012 的累积更新2中发布。有关如何获取此累积更新包的 SQL Server 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703275 SQL Server 2012 累积更新包2注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
解决方法
若要解决此问题,请将 MDX 查询更改为 "不使用任意形状集"。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。