Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Mdx 蒙德里安的优化集计算_Mdx_Mondrian_Rolap - Fatal编程技术网

Mdx 蒙德里安的优化集计算

Mdx 蒙德里安的优化集计算,mdx,mondrian,rolap,Mdx,Mondrian,Rolap,我有一个MDX查询,我正在Mondrian Engine上执行它 WITH MEMBER [Measures].[HC Threshold] AS Val(StrToMember("[HC Threshold].[HC Threshold].[All].[25000]").Name) ,FORMAT_STRING = "$#,0" SET ClaimantsSet AS Order ( Filter ( No

我有一个MDX查询,我正在Mondrian Engine上执行它

WITH 
  MEMBER [Measures].[HC Threshold] AS 
    Val(StrToMember("[HC Threshold].[HC Threshold].[All].[25000]").Name) 
   ,FORMAT_STRING = "$#,0" 
  SET ClaimantsSet AS 
    Order
    (
      Filter
      (
        NonEmpty
        (
          [Count Of Claimants].[Count Of Claimants].[ID].MEMBERS
         ,{[Measures].[Plan Paid]}
        )
       ,
        [Measures].[Plan Paid] > [Measures].[HC Threshold]
      )
     ,[Measures].[Plan Paid]
     ,desc
    ) 
  MEMBER [Measures].[ICD9Desc] AS 
    Tail
    (
      Order
      (
        NonEmpty
        (
          [ICD-9 Primary Diagnosis Code].[Diagnosis Code].[ID].MEMBERS
         ,{[Measures].[Plan Paid]}
        )
       ,[Measures].[Plan Paid]
       ,asc
      )
    ).Item(0).Item(0).Properties("Short Description") 
SELECT 
  {[Measures].[ICD9Desc]} ON 0
 ,NON EMPTY 
    {ClaimantsSet} ON 1
FROM [Combined Claims]
WHERE 
  (
    [Insights Group Structure].[Insights Group Structure].[Insights Report ID].&[1706].FirstChild
    /* StrToMember("No HRA",CONSTRAINED), */
   ,[Plan Period].[Plan Period].[Date Year Quart].&[20152].Lead(4)
   ,[Claim Status].[Claim Status].[Claim Status ID].&[1]
  );
当我执行它时,由于超时而失败

但是当我执行的时候

WITH 
  MEMBER [Measures].[HC Threshold] AS 
    Val(StrToMember("[HC Threshold].[HC Threshold].[All].[25000]").Name) 
   ,FORMAT_STRING = "$#,0" 
  SET ClaimantsSet AS 
    Order
    (
      Filter
      (
        NonEmpty
        (
          [Count Of Claimants].[Count Of Claimants].[ID].MEMBERS
         ,{[Measures].[Plan Paid]}
        )
       ,
        [Measures].[Plan Paid] > [Measures].[HC Threshold]
      )
     ,[Measures].[Plan Paid]
     ,desc
    ) 
SELECT 
  NON EMPTY 
    {ClaimantsSet} ON 0
FROM [Combined Claims]
WHERE 
  (
    [Insights Group Structure].[Insights Group Structure].[Insights Report ID].&[1706].FirstChild
    /* StrToMember("No HRA",CONSTRAINED), */
   ,[Plan Period].[Plan Period].[Date Year Quart].&[20152].Lead(4)
   ,[Claim Status].[Claim Status].[Claim Status ID].&[1]
  );
仅在列上设置,它在3分钟内成功运行

当我查找第一个查询的SQL日志时,我发现,ICD9Desc值是为集合'ClaimentSet'的每个元组计算的,因此,如果集合ClaimentSet中有300个元组,ICD9Desc将被计算300次,因此将生成300个SQL查询。正因为如此,这需要时间和时间


是否有任何解决方案可以避免SQL查询生成那么多次,我可以在Mondrian中优化我的MDX查询或模式吗?

如果您不按顺序进行度量,您是否仍然获得相同的功能,并且运行得更快

WITH 
  MEMBER [Measures].[HC Threshold] AS 
    Val(StrToMember("[HC Threshold].[HC Threshold].[All].[25000]").Name) 
   ,FORMAT_STRING = "$#,0" 
  SET ClaimantsSet AS 
    Order
    (
      Filter
      (
        NonEmpty
        (
          [Count Of Claimants].[Count Of Claimants].[ID].MEMBERS
         ,{[Measures].[Plan Paid]}
        )
       ,
        [Measures].[Plan Paid] > [Measures].[HC Threshold]
      )
     ,[Measures].[Plan Paid]
     ,desc
    ) 
   SET [ICD9DescOrdered] AS
     Order
      (
        NonEmpty
        (
          [ICD-9 Primary Diagnosis Code].[Diagnosis Code].[ID].MEMBERS
         ,{[Measures].[Plan Paid]}
        )
       ,[Measures].[Plan Paid]
       ,asc
      )
  MEMBER [Measures].[ICD9Desc] AS 
    Tail
    (
      [ICD9DescOrdered]
    ).Item(0).Item(0).Properties("Short Description") 
SELECT 
  {[Measures].[ICD9Desc]} ON 0
 ,NON EMPTY 
    {ClaimantsSet} ON 1
FROM [Combined Claims]
WHERE 
  (
    [Insights Group Structure].[Insights Group Structure].[Insights Report ID].&[1706].FirstChild
    /* StrToMember("No HRA",CONSTRAINED), */
   ,[Plan Period].[Plan Period].[Date Year Quart].&[20152].Lead(4)
   ,[Claim Status].[Claim Status].[Claim Status ID].&[1]
  );

谢谢你的回复。不幸的是,这对我来说不起作用。为什么您要以您现有的方式实施
[Measures].[HC Threshold]
?这是通过参数输入的吗?哦,是的。。它是SSRS报告传递的参数。SSR通过的where条款条件