I am trying to understand how TM1 query engine handles C level rules in relation to a query performance problem that I have with C level rules.
Lets say we have a simple currency translation formula such as the following one in CubeA:
Code: Select all
skipcheck;
['USD Amount'] = ['TC Amount'] \ DB('Rates', !Date, !Currency, 'USD Rate');
feeders;
['TC Amount'] => ['USD Amount'];
Obviously first doing the aggregation and then doing the currency translation will require less number of calculations as currency translation happens only for few aggregate numbers rather than millions of leaf level records. Therefore the query performance for USD Amount on aggregate levels should be much better when we do not use :N in this rule. However when I tested this, unfortunately I could not see this performance improvement when I delete :N section from the rule. Therefore I am wondering if there is anything that I am missing here or if I am not aware of any known inefficiency of TM1's query engine for C level rules maybe in a way that it still requires to evaluate leaf level calculations for USD Amount even if it does not use them in C level results.
Any comments or clarifications by experts will be appreciated.
Regards,