Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如何更改mondrian关于联接表的配置_Performance_Mdx_Query Performance_Mondrian - Fatal编程技术网

Performance 如何更改mondrian关于联接表的配置

Performance 如何更改mondrian关于联接表的配置,performance,mdx,query-performance,mondrian,Performance,Mdx,Query Performance,Mondrian,我有一个问题如下: with member [Measures].[ASD] as 'Count( Filter( [DId].[DId].Members , [Measures].[X] >=2000000000 ) )' select [Branch].[City].Members on axis(0), [Measures].[ASD] on axis(1) from [D]; 对于m

我有一个问题如下:

with member 
  [Measures].[ASD] as 
    'Count(
       Filter(
         [DId].[DId].Members
         , [Measures].[X] >=2000000000
       )
     )'
select
  [Branch].[City].Members on axis(0),
  [Measures].[ASD] on axis(1)
from [D];
对于
mondrian
来说,运行它需要很多时间-大约40秒。 这是因为它正在查询每个城市,如下所示:

[[DId].[DId]]: executing sql [select "D"."D_Id" as "c0" from "XXX"."D" "DId", "XXX"."BRANCH" "BRANCH" where "D"."FD_BRANCH" = "BRANCH"."BRANCH_ID" and "BRANCH"."CITY_ID" = 111 group by "D"."D_Id" having (sum("D"."X") >= 2000000000) order by "D"."D_Id" ASC NULLS LAST]
如果您使用SQL语言编写并在oracle中运行它,只需1s。 我想知道在
mondrian
中是否有任何配置,可以说不要像这样进行查询并以正式的方式进行查询?

计数(应该避免使用过滤器

希望运行得更快:

with member 
  [Measures].[ASD] as 
    'Sum(
       [DId].[DId], //<<maybe this should read [DId].[DId].[DId]? 
       Iif([Measures].[X] >=2000000000,1,NULL)
     )'
select
  [Branch].[City].Members on axis(0),
  [Measures].[ASD] on axis(1)
from [D];
与成员
[措施][ASD]as
"总和"(

[DId]。[DId],//谢谢您的回答……但当我这样做时,下面的查询执行:从“XXX”中选择“D”。“D”按“D”分组。“D”按“D”排序。“D”最后为空。这花费了很多时间,最后我的内存崩溃了!!所以不幸的是,我无法使用此解决方案:(是的,我在cmt之前发布了它。)