Rule Definition
Use aggregate awareness, which speeds up query time by using special tables containing pre-calculated data. Do all aggregation on the server side instead of in the document (this can result in huge time savings).
Remediation
See Justification
Violation Code Sample
Fixed Code Sample
Imagine you have 3 tables :
T1, the full table with sales by item, customer, store (a store is linked to a city, a city to a region, a region to a country, a country to a continent).
T2, a first aggregate tab with sales by items
T3, a second aggregate tab with sales by country.
If you define an indicator "sales" as "select @Aggregate_Aware(Sum(T3.nbSales), Sum(T2.nbSales), Sum(T1.nbSales))", when the user will create a query with sales and country (or sales and continent), the query will use T3, when the user will create a query with sales & items, the query will use T2, and if the user create a query with country, item & sales, the query will use T1.
Reference
BO Best Practices for v5
Related Technologies
Technical Criterion
Efficiency - SQL and Data Handling Performance
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.