我有以下MDX查询,它计算成员,然后为指定的日期范围选择这些成员:
WITH
MEMBER [Measures].[Prior] as ([Date Post Transaction].[Calendar Month Period].CurrentMember.Lag(12),[Measures].[Unique Patients])
MEMBER [Measures].[Current] as [Measures].[Unique Patients]
SELECT {[Measures].[Current],[Measures].[Prior]}
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchize(AddCalculatedMembers({DrilldownLevel({[Date Post Transaction].[Calendar Month Period].Children})}))
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME ON ROWS FROM (SELECT ({[Date Post Transaction].[Calendar Month Period].&[201207],[Date Post Transaction].[Calendar Month Period].&[201208],[Date Post Transaction].[Calendar Month Period].&[201209],[Date Post Transaction].[Calendar Month Period].&[201210],[Date Post Transaction].[Calendar Month Period].&[201211],[Date Post Transaction].[Calendar Month Period].&[201212],[Date Post Transaction].[Calendar Month Period].&[201301],[Date Post Transaction].[Calendar Month Period].&[201302],[Date Post Transaction].[Calendar Month Period].&[201303],[Date Post Transaction].[Calendar Month Period].&[201304],[Date Post Transaction].[Calendar Month Period].&[201305],[Date Post Transaction].[Calendar Month Period].&[201306]})
ON COLUMNS FROM [cube])
WHERE ([Provider Billing].[Specialty Mgma Pcps].&[Cardiology: Inv-Intvl])基本上,这个查询是询问所有在心脏病学中的病人当前的日期范围和每月以前的日期范围。
这个查询需要8-9秒才能运行,这太疯狂了。我正在使用来运行和测试查询时间,并且没有遇到其他工具来帮助优化MDX。所以我的第一个问题是,有人知道这样的工具来帮助优化MDX吗?
我的主要问题是在查询中应该使用什么方法或结构来帮助更快地处理结果?我最初没有使用.lag()函数,而是运行一个包含当前和以前的每个月的查询。我确实从这个开关中看到了改进的结果时间。
我有几个报告使用相同的格式,只是不同的度量(度量),所以您可以想象我们在每次运行5+秒的查询中所获得的加载时间。
发布于 2013-09-25 18:23:18
一般来说,MDX优化是不容易的,没有太多的信息是什么导致了性能的影响,很少有像SQL计划这样的信息,还有什么没有得到很好的记录。然而,有什么:
看看您的查询,我不知道性能杀手在哪里。可能是在计算脚本中,在查询本身中不可见的内容。我首先要尝试的可能是--取决于您的[Date Post Transaction].[Calendar Month Period]层次结构--只需使用以下内容
[Date Post Transaction].[Calendar Month Period].&[201207] : [Date Post Transaction].[Calendar Month Period].&[201306]对于行轴,并完全省略子选择,即只使用
FROM [cube]作为整个FROM子句,没有任何子选择。但我怀疑这将大大减少运行时间。
https://stackoverflow.com/questions/19010397
复制相似问题