【问题标题】:SSAS - process top 10K rows of fact tableSSAS - 处理事实表的前 10K 行
【发布时间】:2009-10-09 17:45:03
【问题描述】:

我的环境:用于数据库的 SQL Server 2005 和 SQL Server 2005 Analysis Services。

我有一个 78M 行的事实表。我只想在我的开发阶段处理前 10K 行。

除了从我的 Fact 表中删除行之外,还有其他方法可以实现吗?

【问题讨论】:

  • 我不会考虑针对这么小的数据集进行开发,因为您编写的代码很可能在更大的数据集上表现不佳。如果您要在生产环境中针对大型数据集运行代码,则必须针对开发环境中类似大小的数据集编写代码。
  • 我的总体想法是基于一个小的(er)子集开发我的计算和其他列等,然后让它在一夜之间处理整个 78M。

标签: sql-server sql-server-2005 ssas


【解决方案1】:

在数据源视图中,右键单击表名,选择“替换表/命名查询”并在查询中使用 TOP N

编辑

执行此操作后,如果向其中添加命名计算,然后将命名查询替换为表,则会丢失命名计算。需要注意的事情!

【讨论】:

  • 或者直接引用视图而不是命名查询。那么命名计算就没有问题了,因为您不必更新 dsv 来测试更改。
【解决方案2】:

我同意 Raj 关于更改为命名查询的观点。您还可以将前 N 个构建到数据库视图中,然后在视图中添加或删除前 N 个,而无需更改已部署的分析服务多维数据集。或者,您可以将视图指向包含 10K 行的单独表。

另一种选择是保持 DSV 不变,但将度量组上的分区更改为使用 TOP N 或精简表。然后,当您要处理所有行时,只需将分区改回即可。

使用单独的表来复制 10K 行的好处是,您可以保证每次都获得相同的结果(TOP N 不会),因此测试结果可能会更容易。

【讨论】:

    【解决方案3】:

    如果使用聚合选项卡并计算聚合,还可以做一件事。 将大小限制保持在 1 -2 MB。 所以它会在分区中计算非常少的成员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多