WEB开发网
开发学院数据库DB2 DAX-查询计划 阅读

DAX-查询计划

 2012-06-09 07:12:00 来源:WEB开发网   
核心提示: 当执行简单的运算,速度最快,DAX-查询计划(2),如果复杂的,需要 DAX FE 的帮助,就会发现:A: FE 使用 SUMX AND FILTER;B: FE 仅用 FILTER,SUMX 由 VERTIPAQ ENGINE 的 SUM 完成,速度变慢,由于 FE 是单线程的
 
当执行简单的运算,速度最快,如果复杂的,
需要 DAX FE 的帮助,速度变慢。由于 FE 是单线程的,如果计算使用 VERTIPAQ ENGINE,多线程,批量处理,快很多。
因此,查询计划如果使用VERTIPAQ 运算符,是非常好的。
 
几点注意:
1,SCAN_VERTIPAQ是其他的基础
2,SPOOL 可以被查询,通过: SPOOL LOOKUPPHYOP, SPOOL_ITERONLY, SPOOL_LOOKUPONLY, SPOOL_SLICEINDEX ITERPHYOPS.
一个非常重要的特征就是: #RECORDS, VERTIPAQ ENGINE多少记录返回 ,决定计划优劣的重要标志。
3,如果使用 FE,物理计划树并不体现。
4,SCAN_VERTIPAQ的特殊属性,主要包括:TABLE, BLANK ROW, JOINCOLS, SEMIJOINCOLS,
 
最后,比较两个查询:
 
A:
evaluate 
       addcolumns(
             'Date', 
             "x",
             sumx(
                   filter('Internet Sales', [Order Date] <= [Date]), 
                   [Sales Amount]
             )
       )
B:
evaluate 
       addcolumns(
             'Date', 
             "x", 
             calculate(
                   sum('Internet Sales'[Sales Amount]), 
                   'Internet Sales'[Order Date] <= earlier([Date]), 
                   all('Date')
             )
       )
 
那一个好呢?
如果检查查询计划,就会发现:
A: FE 使用 SUMX AND FILTER;
B: FE 仅用 FILTER,SUMX 由 VERTIPAQ ENGINE 的 SUM 完成。
毫无疑问, 计划 B 好于 A.

上一页  1 2 

Tags:DAX 查询 计划

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接