Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处理SSAS对象_C#_Sql Server_Ssas - Fatal编程技术网

C# 处理SSAS对象

C# 处理SSAS对象,c#,sql-server,ssas,C#,Sql Server,Ssas,在使用基于C#的工具处理SSAS对象方面,我们面临着一些问题,这些工具允许我们“自定义”根据业务规则处理对象的方式。基本上,该工具运行以下步骤: 1) 根据参数,在数据库的维度上迭代以完全/更新模式处理(或不处理)每个维度 2) 迭代数据库的多维数据集,以便迭代其度量值组,以便迭代其分区,以便根据参数在Full/Add模式下处理(或不处理)每个数据集 在这种情况下,我们假设参数允许在更新模式下处理的维度以及在完整模式下处理的分区。所以,除了数据库和多维数据集对象外,其余对象都由应用程序成功处理,

在使用基于C#的工具处理SSAS对象方面,我们面临着一些问题,这些工具允许我们“自定义”根据业务规则处理对象的方式。基本上,该工具运行以下步骤:

1) 根据参数,在数据库的维度上迭代以完全/更新模式处理(或不处理)每个维度

2) 迭代数据库的多维数据集,以便迭代其度量值组,以便迭代其分区,以便根据参数在Full/Add模式下处理(或不处理)每个数据集

在这种情况下,我们假设参数允许在更新模式下处理的维度以及在完整模式下处理的分区。所以,除了数据库和多维数据集对象外,其余对象都由应用程序成功处理,因此多维数据集和数据库状态也被“处理”

浏览具有布尔维度的多维数据集时会出现此问题。它的命名查询非常简单,只带来以下结果:

  • 0-“假”
  • 1-“正确”
  • null-“未定义”
由于收集的数据上没有'null'值,因此分析应仅显示'True''False'标签。但是,'Undefined'选项正在取代'False'选项

会发生什么?如果我们通过SSMS在Full模式下处理整个数据库,那么分析似乎是正确的。然而,我们已经构建了这个工具来自动化和执行适当的过程。我们的方法是否违反了一些隐含的处理规则,比如优先级顺序


谢谢大家,

是否要将维度的空键与事实表的外键列中的空值相匹配?我认为这不会起作用,空值不会链接到空值。@FrankPl是的,这是我们计划的。谢谢你的提示,它可以回答未来的问题。目前,我们仍然不知道在处理工具中的对象时,是什么导致了错误的分析<如果
x
null
,则code>IIf(x=0,y,z)或
IIf(x=”,y,z)
将计算为
y
。因此,在部分多维数据集处理中可能会发生类似的情况。由于这不太可靠,我只是尝试将所有列(仅用于度量值的列除外)设置为非空,以避免Analysis Services中出现许多模棱两可的情况。我们注意到,SSMS在流程窗口中以特定顺序显示处理过的对象:某些维度似乎在度量值组之前处理过,最后处理剩余的尺寸。这就是为什么我们猜测存在处理顺序的隐式规则,这不是通过在分区之前处理所有维度来实现的。进程窗口中项目的显示顺序在某种程度上是随机的,可能是您创建它们的顺序。但是,如果您发出一个
进程数据库
,通常会并行使用多个执行线程,但要注意始终在任何度量值组引用维度之前处理维度。否则,处理顺序是任意的。