SQL 2008 MDX 查询中的重复计算

发布于 2024-08-20 10:38:38 字数 695 浏览 1 评论 0原文

我有一个 MDX 查询,它返回以下元组:

Dim1A, Dim11, Dim21, Measure1A, Measure11, Measure21
Dim1A, Dim12, Dim22, Measure1A, Measure12, Measure22
Dim1A, Dim13, Dim23, Measure1A, Measure13, Measure23
Dim1A, Dim14, Dim24, Measure1A, Measure14, Measure24
....
....
Dim2A, Dim11, Dim21, Measure2A, Measure11, Measure21
Dim2A, Dim12, Dim22, Measure2A, Measure12, Measure22
Dim2A, Dim13, Dim23, Measure2A, Measure13, Measure23
Dim2A, Dim14, Dim24, Measure2A, Measure14, Measure24

Measure1A、Measure2A 对 Dim1A、Dim2A 重复,如果我有一个大集合,则查询响应时间会很慢,因为 MeasureA 是一项复杂的计算。我的问题是如何防止 MeasureA 对每个 DimA 计算 4 次。因此,在上面的示例中,Measure1A 被计算了 4 次,Measure2A 也被计算了 4 次。理想情况下,我希望为每个唯一的 DimA 计算一次

I have an MDX query which returns the following tuples:

Dim1A, Dim11, Dim21, Measure1A, Measure11, Measure21
Dim1A, Dim12, Dim22, Measure1A, Measure12, Measure22
Dim1A, Dim13, Dim23, Measure1A, Measure13, Measure23
Dim1A, Dim14, Dim24, Measure1A, Measure14, Measure24
....
....
Dim2A, Dim11, Dim21, Measure2A, Measure11, Measure21
Dim2A, Dim12, Dim22, Measure2A, Measure12, Measure22
Dim2A, Dim13, Dim23, Measure2A, Measure13, Measure23
Dim2A, Dim14, Dim24, Measure2A, Measure14, Measure24

The Measure1A, Measure2A gets repeated for Dim1A, Dim2A and if I have a large set the query response time is slow since MeasureA is an involved calculation. My question is how can I prevent MeasureA from getting computed 4 times for each DimA. So in the above example Measure1A gets calculated 4 times and so does Measure2A. Ideally I would like them to be computed once for each unique DimA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡看悲欢离合 2024-08-27 10:38:38

如果可能的话,您可以尝试使用查询范围的计算成员。只要您不在计算中包含当前成员,它就只会计算一次。这是否可行将取决于您的查询的复杂程度以及您是否有很多要添加的度量(Measure1A、Measure2A、Measure3A 等),

例如:

WITH 
   MEMBER [Measures].[Measure1a] AS ....your calculation....
SELECT 
 ..... your query

You could try using a query scoped calculated member, if possible with your query. As long as you don't include the currentmember in the calculation it will only get calculated once. Whether this is possible or not will depend on how complex your query is and whether you have a lot of measures to add (Measure1A, Measure2A, Measure3A, etc)

Something like:

WITH 
   MEMBER [Measures].[Measure1a] AS ....your calculation....
SELECT 
 ..... your query
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文