首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.Lag()优化计算度量的MDX查询

使用.Lag()优化计算度量的MDX查询
EN

Stack Overflow用户
提问于 2013-09-25 16:28:40
回答 1查看 920关注 0票数 0

我有以下MDX查询,它计算成员,然后为指定的日期范围选择这些成员:

代码语言:javascript
复制
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+秒的查询中所获得的加载时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-25 18:23:18

一般来说,MDX优化是不容易的,没有太多的信息是什么导致了性能的影响,很少有像SQL计划这样的信息,还有什么没有得到很好的记录。然而,有什么:

  • 微软有一个性能优化指南:http://technet.microsoft.com/en-us/library/dd542635(v=sql.100).aspx
  • MDX和的前首席开发人员有一个博客:http://sqlblog.com/blogs/mosha/
  • 他还开发了一个工具,您可以使用该工具来运行查询,并查看一些仍然可以下载的或多或少有用的查询统计信息:http://www.sqlbi.com/tools/mdx-studio

看看您的查询,我不知道性能杀手在哪里。可能是在计算脚本中,在查询本身中不可见的内容。我首先要尝试的可能是--取决于您的[Date Post Transaction].[Calendar Month Period]层次结构--只需使用以下内容

代码语言:javascript
复制
[Date Post Transaction].[Calendar Month Period].&[201207] : [Date Post Transaction].[Calendar Month Period].&[201306]

对于行轴,并完全省略子选择,即只使用

代码语言:javascript
复制
 FROM [cube]

作为整个FROM子句,没有任何子选择。但我怀疑这将大大减少运行时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19010397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档