I have an offline cube file (.cub extension) that has the following cube structure:

Measures: mes
A (3 levels)
Time (2 Levels)
C (5 levels)
D (5 levels)
E (3 levels)
F (2 levels)
G (2 levels)

The cube file size is 100Mb and it was created/populated using ADOMD via a CREATECUBE/INSERTINTO statement.

I open a connection to this cube using ADOMD (v2.7) and run an MDX query to return a cellset. The mdx statement is as follows:

SELECT {FILTER([A].[A1].members as Ax, Ax.current = Val1), FILTER([A].[A2].members as Ay, Ay.current = Val2)} on Axis(0), {[Time].[Year].members} on Axis(1) From [Cube] Where ([C].[Val3], [D].[Val4], [E].[Val5], [F].[Val6], [G].[Val7])

The returned cellset has two rows and three columns, for a total of 6 cells.
Year1 Year2 Year3
Prod1 1 2 3
Prod2 4 5 6

Time taken to open the connection and return the cellset is about 45 seconds on a PII/500Mhz with 128 Mb RAM

Now I iterate through the cellset to get the values and display them using

For I = 0 to 1
For J= 0 to 2
value = cellset(I,J).value
Next J
Next I

The problem occurs whenever I changes. When this happens the systems stops for 2-3 minutes before returning the value. But once I has a specific value I can iterate through J without speed penalties.

To clarify:

I ask for cellset(0,0) and the system stops for 2-3 minutes
I then ask for cellset(0,1) and cellset(0,2) and recieve the values immediately
I then ask for cellset(1,0) and again the system stops for 2-3 minutes.
I then ask for cellset(1,1) and cellset(1,2) and recieve the values

Any explanations for the sudden slow down on row changes for such a small cellset? Any way to avoid these slow downs?

I've tried the same on a faster machine (P4/1.9Ghz) and naturally the times are reduced but it still sits there for 30-45 seconds on each row change.