SQL Server数据库有1000个分区限制
在SQL Server 2005之后,一个表只能有1000个分区。在BW系统中,可以观察到,如果不对infocbe进行压缩,客户通常会达到这个限制,并可能导致系统错误。
达到1000分区限制的后果:
一旦在SQL Server数据库中达到1000个分区限制,它将继续将每个新请求写入到第1000个分区,并将一个错误写入系统日志(SQL error 7719 -见下面的快照)。然而,这样做只是为了避免在加载数据时出现严重的故障,这不是推荐的业务流程,您一直将请求加载到最后一个分区。继续加载到第1000个分区可能会在稍后尝试删除请求时导致性能问题。
此外,如果InfoCube上有1000个分区的聚合,下一次对聚合的汇总将失败,并出现一个硬错误,在系统上给出DUMP。
如何查看SQL server数据库的分区数:
执行报告RSDD_MSSQL_CUBEANALYZE
-菜单设置=>专家模式
-按下Details按钮
—选择最小分区数
-按下按钮开始检查
推荐:
要进行纠正操作,您应该遵循SAP Note SAP Note 869407:“在MS SQL Server 2005和更高版本上的分区”。
InfoCube (F Fact表):执行压缩,将每个InfoCube的分区数量减少到800以下。
InfoCubes (F事实表):由于E事实表是根据一个特征进行分区的,系统将只允许分区范围小于1000个分区。
聚合:要纠正聚合,您需要首先在InfoCube管理屏幕上设置“滚动后压缩”标志,然后停用和重新激活多维数据集。当重新激活和填充执行时,它还会自动将记录压缩到聚合的E事实表中,这样F事实表就不会达到1000个分区。
PSA和DSO表:由于InfoCubes和PSA/DSO之间的数据加载过程不同,通常不会遇到在PSA和DSO表中有1000个分区的情况。
谢谢你Tanuj。