码迷,mamicode.com
首页 > 其他好文 > 详细

慎用SSAS服务端动态命名集

时间:2014-09-04 13:10:09      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   2014   问题   sp   log   c   时间   

SSAS里的动态命名集(Named Set)在项目中会经常用到,常用的函数如TopCount, Filter, Exists等,但有些能设置为静态命名集,有些则不能,例如TopCount如果设置成Static Set就没多大意义了,今天解决个Excel访问SSAS的性能问题和此有关,之前有个项目在support阶段每次使用excel访问ssas首次创建pivot table都要花费近20秒的时间,实在忍无可忍才着手排查原因,首先使用profiler捕捉到性能瓶颈如下图

bubuko.com,布布扣

发现在每次新建pivot table时,服务器会要查询MDSCHEMA_SETS动态视图,接着尝试到SSAS服务器上查询$system.mdschema_sets看看里面的内容,新建DMX查询窗口,输入select * from $system.mdschema_sets后F5, 果不其然,这个查询执行了20秒,只查出了5条记录,正好就是cube里设计进去的5个Dynamic Sets, 其中一个是[Top 100 Account By Sales]取消费排行前百名的会员,而会员维度是个大型维度,有上千万笔记录。

由此得出结论,在新建pivot table时,服务端会自动计算一次系统里所有的Dynamic Set, 因为是Dynamic的,从上图也看到,即使是有Cache存在也是会重新做一次查询的。

现在的解决方案是把这些服务端的Dynamic Sets都删掉,以后如果需要用到这些功能,在Excel客户端也是可以实现的,举例如下

bubuko.com,布布扣

新建一个客户端命名集

bubuko.com,布布扣

然后就可以在相应的维度下面找到这个命名集

bubuko.com,布布扣

用法和服务端的命名集完全一致,唯一麻烦的就是需要在每个终端用户的客户端上创建这个mdx named set

 

慎用SSAS服务端动态命名集

标签:blog   http   使用   2014   问题   sp   log   c   时间   

原文地址:http://www.cnblogs.com/xpivot/p/3955777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!