Hi, I am a developer and I am trying to improve the performance of our analysis views using aggregate tables. The problem I am facing is that the analysis view is not using aggregate table for calculations and instead it is directly going to the fact_table. Can some one tell me why is this happening ? I have pasted below a test analysis view I am trying to use. The fact table is recipient_success and the aggregate table is agg_tracking_by_month. There are three dimension tables I am using mailing, campaign and date_dimension. All these tables have various columns. The aggregate tables looks like: postgres=# d agg_tracking_by_month Table "public.agg_tracking_by_month" Column | Type | Modifiers ------------+------------------------+----------- fact_count | integer | delivered | integer | year | integer | quarter | integer | month | integer | mailing | character varying(255) | campaign | character varying(255) | My MDX is select {[Time.Time].[All Time.Times].[2008]} ON COLUMNS, Crossjoin(Hierarchize({([Campaign.Campaign].[All Campaign.Campaigns], [Mailing.Mailing].[All Mailing.Mailings])}), {[Measures].[Delivered]}) ON ROWS from [success] In the logs, I have enabled Mondrian SQL logging by setting log4j.logger.mondrian.rolap.RolapUtil=debug in log4.properties and it shows that the analysis view directly uses the fact_table when it should be computing the values based on the agg_tracking_by_month table. -------------Start jasperserver.log---------------------- 2009-01-08 04:03:58,770 DEBUG [http-8443-Processor23] rolap.SqlStatement - AggStar.FactTable.makeNumberOfRows: executing sql [select count(*) as "c0" from "public"."agg_tracking_by_month" as "agg_tracking_by_month"], exec 1 ms 2009-01-08 04:03:58,810 WARN [http-8443-Processor23] recorder.AbstractRecorder - Recognizer.checkUnusedColumns: Candidate aggregate table 'agg_tracking_by_month' for fact table 'recipient_success' has a column 'mailing' with unknown usage. 2009-01-08 04:03:58,811 WARN [http-8443-Processor23] recorder.AbstractRecorder - Recognizer.checkUnusedColumns: Candidate aggregate table 'agg_tracking_by_month' for fact table 'recipient_success' has a column 'month' with unknown usage. 2009-01-08 04:03:58,812 WARN [http-8443-Processor23] recorder.AbstractRecorder - Recognizer.checkUnusedColumns: Candidate aggregate table 'agg_tracking_by_month' for fact table 'recipient_success' has a column 'year' with unknown usage. 2009-01-08 04:03:58,813 WARN [http-8443-Processor23] recorder.AbstractRecorder - Recognizer.checkUnusedColumns: Candidate aggregate table 'agg_tracking_by_month' for fact table 'recipient_success' has a column 'campaign' with unknown usage. 2009-01-08 04:03:58,814 WARN [http-8443-Processor23] recorder.AbstractRecorder - Recognizer.checkUnusedColumns: Candidate aggregate table 'agg_tracking_by_month' for fact table 'recipient_success' has a column 'quarter' with unknown usage. 2009-01-08 04:03:58,824 DEBUG [http-8443-Processor23] rolap.SqlStatement - SqlMemberSource.getMemberChildren: executing sql [select "date_dimension"."year" as "c0" from "public"."date_dimension" as "date_dimension" where "date_dimension"."year" = 2008 group by "date_dimension"."year" order by "date_dimension"."year" ASC], exec 4 ms 2009-01-08 04:03:58,832 DEBUG [http-8443-Processor23] rolap.SqlStatement - SqlMemberSource.getMemberChildren: executing sql [select "mailing"."name" as "c0" from "public"."mailing" as "mailing" where UPPER("mailing"."name") = UPPER('Campaign.Campaign') group by "mailing"."name" order by "mailing"."name" ASC], exec 4 ms 2009-01-08 04:07:05,198 DEBUG [http-8443-Processor24] rolap.SqlStatement - Segment.load: executing sql [select "date_dimension"."year" as "c0", count("recipient_success"."recipient_success_id") as "m0" from "public"."date_dimension" as "date_dimension", "public"."recipient_success" as "recipient_success" where "recipient_success"."date_dimension_id" = "date_dimension"."date_dimension_id" and "date_dimension"."year" = 2008 group by "date_dimension"."year"], exec 165274 ms -------------End jasperserver.log---------------------- ----------------Start Schema---------------------------- <Schema name="Tracking"> <Dimension type="TimeDimension" name="Time"> <Hierarchy name="Time" hasAll="true" primaryKey="date_dimension_id" primaryKeyTable="date_dimension"> <Table name="date_dimension" schema="public"> </Table> <Level name="Year" table="date_dimension" column="year" type="Numeric" uniqueMembers="true" levelType="TimeYears" hideMemberIf="Never"> </Level> <Level name="Quarter" table="date_dimension" column="quarter" nameColumn="" ordinalColumn="quarter" type="Numeric" uniqueMembers="false" levelType="TimeQuarters" hideMemberIf="Never"> </Level> <Level name="Month" table="date_dimension" column="month" nameColumn="month_sname" ordinalColumn="month" parentColumn="" type="Numeric" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never"> </Level> <Level name="Day of month" table="date_dimension" column="day" nameColumn="" ordinalColumn="day" type="Numeric" uniqueMembers="false" levelType="TimeDays" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> <Dimension name="Mailing"> <Hierarchy name="Mailing" hasAll="true" primaryKey="mailing_id" primaryKeyTable="mailing"> <Table name="mailing" schema="public"> </Table> <Level name="Mailing" table="mailing" column="name" uniqueMembers="false" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> <Dimension name="Campaign"> <Hierarchy name="Campaign" hasAll="true" primaryKey="campaign_id" primaryKeyTable="campaign"> <Table name="campaign" schema="public"> </Table> <Level name="Campaign" table="campaign" column="name" uniqueMembers="false" hideMemberIf="Never"> </Level> </Hierarchy> </Dimension> <Cube name="Success" cache="true" enabled="true"> <Table name="recipient_success" schema="public"> <AggName name="agg_tracking_by_month" schema="public"> <AggFactCount column="fact_count"/> <AggMeasure name="[Measures].[Delivered]" column="delivered" /> <AggLevel name="[Time].[Year]" column="year" /> <AggLevel name="[Time].[Quarter]" column="quarter" /> <AggLevel name="[Time].[Month]" column="month" /> <AggLevel name="[Mailing].[Mailing]" column="mailing" /> <AggLevel name="[Campaign].[Campaign]" column="campaign" /> </AggName> </Table> <DimensionUsage name="Time" source="Time" foreignKey="date_dimension_id"> </DimensionUsage> <DimensionUsage name="Mailing" source="Mailing" foreignKey="mailing_id"> </DimensionUsage> <DimensionUsage name="Campaign" source="Campaign" foreignKey="campaign_id"> </DimensionUsage> <Measure name="Delivered" column="recipient_success_id" aggregator="count" visible="true"> </Measure> </Cube> </Schema> --------------End Schema-------------------- Thanks, Prasanna