Ssas 永远运行的简单计算成员-MDX
我在MDX(SSAS 2014)方面面临着一个非常奇怪的问题,最简单的计算成员要花很长时间才能执行。有人能帮我理解为什么我要面对这个问题吗。如果我不使用计算成员,一切工作都很快,结果在几秒钟内就出来了。当我删除Producer属性时,查询性能良好 下面是完整的查询 与 成员措施日期为(“[政策生效日期][年-月][日期].&[2018-01-04T00:00:00]”) 会员机构以总金额计量YTDPremium(YTD(STRTOMEMBER(Measures.AsOfDate)),[Measures].[writed Premium]) 选择非空 { 钇镉 }在列上,非空 { ( [程序].[程序名].[程序名] ,[保险公司].[保险公司名称].[保险公司名称] ,[业务范围][业务范围][业务范围] ,[Producer].[Producer Name].[Producer Name] ) }成排Ssas 永远运行的简单计算成员-MDX,ssas,mdx,Ssas,Mdx,我在MDX(SSAS 2014)方面面临着一个非常奇怪的问题,最简单的计算成员要花很长时间才能执行。有人能帮我理解为什么我要面对这个问题吗。如果我不使用计算成员,一切工作都很快,结果在几秒钟内就出来了。当我删除Producer属性时,查询性能良好 下面是完整的查询 与 成员措施日期为(“[政策生效日期][年-月][日期].&[2018-01-04T00:00:00]”) 会员机构以总金额计量YTDPremium(YTD(STRTOMEMBER(Measures.AsOfDate)),[Measu
从[Premium]尝试了解以下部分在查询中的作用 非空{([Program].[Program Name].[Program Name] ,[保险公司].[保险公司名称].[保险公司名称] ,[业务范围][业务范围][业务范围] ,[Producer].[Producer Name].[Producer Name] )行上的} 在上面的MDX中,您告诉服务器使用“程序”、“业务线”和“制作人名称”的所有值的叉积。假设你有4个节目值,3个业务线值和2个制作人名称值。总组合为4*3*2=24 现在,“非空”将删除数据集中不存在的任何组合。这是通过删除列值中具有“Null”值的所有行来完成的 您的度量值是返回值,无论该组合是否存在。只有在组合有效的情况下,才能修改Calculatedmeasure以返回值。这可以通过检查该组合的实际测量值来实现 编辑:基于以下示例基于注释 在下面的示例中,我试图获取互联网销售额类别和组成部分
select
{ [Measures].[Internet Sales Amount] }
on columns,
(
[Product].[Category].[Category],
[Customer].[Country].[Country]
)
on rows
from [Adventure Works]
结果
现在将“nonempty”添加到查询中并观察结果
结果
现在,让我们添加返回“hello”的计算度量值。请注意非空子句是如何无效的
现在修改代码,使计算的度量值检查其他度量值是否为null
with member measures.t as
case when [Measures].[Internet Sales Amount] = null then null else "hello" end
select
{ [Measures].[Internet Sales Amount] ,measures.t }
on columns,
non empty
(
[Product].[Category].[Category],
[Customer].[Country].[Country]
)
on rows
from [Adventure Works]
结果
底线:由于交叉积,您的结果太大,SSAS很难处理。我也尝试删除非空项,但查询仍在运行。如何修改查询以检查度量值是否存在?请提供一个mdx示例或修改现有示例。这真的很有帮助。谢谢。那么,如何避免交叉积并快速得出结果呢。我在查询中保持非空。当[measures].[Internet Sales Amount]=null,然后为null,否则为“hello”end时,将这行代码“与member measures.t保持一致”是什么意思。任何how非空子句都将对其进行筛选。Sry i对MDX来说太陌生了。上面这行的意思是只有当您有[Measures].[Internet Sales Amount]的值时才返回“hello”。这样做有意义吗?但是通过添加这一点并不会对我的查询性能产生任何影响。您有什么建议来优化所提供的查询,以便它至少可以带来结果。目前它还在运行。我需要查看您的查询吗?