Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I have been doing some benchmarking between the 32 and 64 bit versions of QV, and have found a significant discrepancy in performance for a Pivot Table calc times, which I think may force us to use the 32 bit server if a better solution cannot be found. I am running QV 9 SR3 Build 7440
I suspect that we're doing something funky that most other QV users aren't doing (i.e. large expressions with conditional logic containing set expressions. Interestingly I've separately tested with two different expressions: one dealing with averages (i.e. floating point operations) and the second with only counts and sums (i.e. integer operations).
I should also point out that until SR3 came out, this code didn't work at all in the 64 bit version, so I wonder if my suboptimal performance is related to this patched bug.
I've pasted the Pivot Table dimension definitions below (the first 5 dimensions are primary [i.e. rows], and the 6th dimension is secondary [i.e. columns]).
If anyone has any ideas I'm all ears
Dimensions:
ORG1_MemberName1
=if($(CurOrgLevel) >= 2, ORG1_MemberName2)
=if($(CurOrgLevel) >= 3, ORG1_MemberName3)
=if($(CurOrgLevel) >= 4, ORG1_MemberName4)
=if($(CurOrgLevel) >= 5, ORG1_MemberName5)
=$(PdRollupField)
Variables:
CurOrgLevel = 2
PdRollupField = PD1_PeriodName2
PdResp1 = {<SG1_path=,ORG1_path=,ORG1_level={1},ORG1_MemberName1={'Acme Co'}>}
PdResp2 = {<SG1_path=,ORG1_path=,ORG1_level={1},ORG1_MemberName2={'Montana','Idaho','Nevada'}>}
PdResp3 =
PdResp4 =
PdResp5 =
Current Selections:
SG1_path = 'Question 1'
PD1_path = 96 of 296
ORG1_path = NOT 'Acme Co'
Chart Expression:
If(dimensionality()=5 AND $(CurOrgLevel) >= 5,
count($(PdResp5) distinct FT_ResponseId)
,
if(dimensionality()=4 AND $(CurOrgLevel) >= 4,
sum($(PdResp4) aggr(count($(PdResp4) distinct FT_ResponseId), ORG1_MemberName4, $(PdRollupField)))
,
if(dimensionality()=3 AND $(CurOrgLevel) >= 3,
sum($(PdResp3) aggr(count($(PdResp3) distinct FT_ResponseId), ORG1_MemberName3, $(PdRollupField)))
,
if(dimensionality()=2 AND $(CurOrgLevel) >= 2,
sum($(PdResp2) aggr(count($(PdResp2) distinct FT_ResponseId), ORG1_MemberName2, $(PdRollupField)))
,
if (dimensionality()=1 AND $(CurOrgLevel) >= 1,
sum($(PdResp1) aggr(count($(PdResp1) distinct FT_ResponseId), ORG1_MemberName2, $(PdRollupField)))
)
)
)
)
)