Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
用于交叉连接的*运算符的saiku mdx性能问题_Mdx_Mondrian_Saiku - Fatal编程技术网

用于交叉连接的*运算符的saiku mdx性能问题

用于交叉连接的*运算符的saiku mdx性能问题,mdx,mondrian,saiku,Mdx,Mondrian,Saiku,有人能解释为什么吗 SELECT NON EMPTY {Hierarchize({[Measures].[Quantity]})} ON COLUMNS, NON EMPTY ([Time].[Years].Members * [Markets].[City].Members * [Product].[Product].Members * [Customers].[Customer].Members) ON ROWS FROM [SteelWheelsSales] 比这慢得多: SELECT

有人能解释为什么吗

SELECT
NON EMPTY {Hierarchize({[Measures].[Quantity]})} ON COLUMNS,
NON EMPTY ([Time].[Years].Members * [Markets].[City].Members * [Product].[Product].Members * [Customers].[Customer].Members) ON ROWS
FROM [SteelWheelsSales]
比这慢得多:

SELECT
NON EMPTY {Hierarchize({[Measures].[Quantity]})} ON COLUMNS,
NON EMPTY CrossJoin([Time].[Years].Members, CrossJoin([Markets].[City].Members, CrossJoin([Product].[Product].Members, [Customers].[Customer].Members))) ON ROWS
FROM [SteelWheelsSales]

我想使用*操作符进行交叉连接,但它似乎要慢得多。知道我为什么要做什么吗?

看来顺序很重要:

为了防止上述链接在将来消失,它基本上比较了以下两个AdvWks脚本的性能:

问题1

WITH MEMBER Measures.PerfmonTest AS 
Count( 
    Crossjoin( [Promotion].[Promotions].[Promotion] ,
        Filter([Customer].[Customer Geography].[Customer], RIGHT([Customer].[Customer Geography].CurrentMember.Name,5) = "Smith") 
    )
) 
SELECT Measures.PerfmonTest ON Columns 
FROM [Adventure Works] 
问题2

WITH MEMBER Measures.PerfmonTest AS 
Count( 
    Crossjoin( 
        Filter([Customer].[Customer Geography].[Customer], RIGHT([Customer].[Customer Geography].CurrentMember.Name,5) = "Smith")
        ,[Promotion].[Promotions].[Promotion] ) 
    ) 
SELECT Measures.PerfmonTest ON Columns 
FROM [Adventure Works]

…如果你改变第一个脚本中交叉连接的层次结构的顺序?嗯,有趣的一点。我之前没有意识到。如果我的假设是正确的,最里面的子查询先求值,然后再求值到最外面的子查询,那么是的,顺序可能不同。在OP中的第一个查询中,执行的自然顺序是从左到右吗?@Sourav_Agasti不确定:@whytheq,我的初始查询顺序相同,但在性能上仍然存在巨大差异……两者之间的唯一区别是,在第一个查询中,我使用了*运算符而不是交叉连接函数