I am using saiku which inturn uses olap4j connection object from Pentaho. I use oracle database. When I add a dimension to filter, I get the very slow response from saiku. By enabling debug logging, I noticed that the problem is with Olap4Jconnection/statement. Here is my logs

2013-04-11 16:41:12,381 DEBUG [mondrian.server.monitor] ExecutionStartEvent(139)2013-04-11 16:41:12,382 DEBUG [mondrian.server.monitor] SqlStatementStartEvent(4)
2013-04-11 16:41:14,656 DEBUG [mondrian.rolap.RolapUtil] SqlTupleReader.readTuples [[DimensionName].[LevelName]]: executing sql [select xxx as "yy" from zzzzz group by xxx order by xxx ASC NULLS LAST], exec 2273 ms
2013-04-11 16:41:20,719 DEBUG [mondrian.sql] 4: , exec+fetch 8338 ms, 76771 rows


If I run the same sql from a simple jdbc application, I can execute and fetch the results in less than a second. I had the fetch size of 100 in my sample jdbc application. If I try to tweek the saiku code to set fetchsize on OlapStatement, I get Unsupported exception

Caused by: java.lang.UnsupportedOperationException
at mondrian.olap4j.MondrianOlap4jStatement.setFetchSize(MondrianOlap4jStatement.java:238)
at org.saiku.olap.query.OlapQuery.execute(OlapQuery.java:200)

Is there a way to improve the execute and fetch performance while working oracle(with lot of data)?

Thanks