- Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general...
Transcript of - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general...
![Page 1: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/1.jpg)
![Page 2: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/2.jpg)
<Insert Picture Here>
Optimizing ASO
Steve LiebermenschConsulting Technical Director
![Page 3: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/3.jpg)
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
![Page 4: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/4.jpg)
Agenda
• Dimension settings and usage– Compression– Accounts– Time
• MDX optimization• Materialization• Data load
![Page 5: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/5.jpg)
Dimension Settings and UsageCompression
• Compression dimension is not mandatory, but helps performance
• The compression dimension is a dynamic dimension• Should be the column headers in a data load file• Ideal compression is achieved if the leaf level
member count is evenly divisible by 16
![Page 6: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/6.jpg)
Dimension Settings and UsageAccounts
• Dynamic dimension• Allows for non additive unary operators• Required for time balance functionality• Expense flags are accomplished through UDAs and
member formulae• In the case of large GL type accounts dimensions
should consider storing the dimension
![Page 7: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/7.jpg)
Dimension Settings and UsageAccounts
Must be a dynamic dimension due to “-”unary operator
![Page 8: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/8.jpg)
Dimension Settings and UsageAccounts
Simplest hierarchy and allows for maximum stored aggregates. Leverages load rule setting
of sign flip on UDA. Requires the user to accept different signage of values.
![Page 9: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/9.jpg)
Dimension Settings and UsageAccounts
Preserves original signage and allows for some aggregates to be stored
![Page 10: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/10.jpg)
Dimension Settings and UsageTime
• Can make a good candidate for compression dimension
• Should be stored• Use multi-hierarchy dimension if formulae are
necessary• To-date formulae
– Prior to 9.3.1 best if performed in Time dimension– 9.3.1 and forward, best to use analytic dimension
![Page 11: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/11.jpg)
Dimension Settings and UsageTime
• Use analytic dimension if you need perform time calculations like period to date sums, period over period comparisons
• Use AGGREGATE function if your period to date calculations need to take Time Balance tags into account
ORACLE CONFIDENTIAL
![Page 12: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/12.jpg)
Agenda
• Dimension settings and usage• MDX optimization
– Data vs. meta data– Eliminate unnecessary functions– Simplify syntax– NonEmpty directive
• Materialization• Data load
![Page 13: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/13.jpg)
MDX OptimizationMeta-data vs data
Performance difference between the following statements:
IIf(Scenario.CurrentMember = Actual,….)
Or
IIf(Is(Scenario.CurrentMember,Actual),….)
![Page 14: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/14.jpg)
MDX Optimization
Goal is to calculate a products 3 month average Transactions contribution % to total 3 month average Transactions:
![Page 15: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/15.jpg)
MDX Optimization
Round( ( ( ([Time].CurrentMember,[Products].CurrentMember,[Transactions]) +
([Time].CurrentMember.Lag(1),[Products].CurrentMember,[Transactions]) +
([Time].CurrentMember.Lag(2),[Products].CurrentMember,[Transactions]) ) /
(([Time].CurrentMember,Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) +
([Time].CurrentMember.Lag(1),Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) +
([Time].CurrentMember.Lag(2),Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) ) )
,4)
![Page 16: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/16.jpg)
MDX Optimization
Round( ( ( ([Time].CurrentMember,[Products].CurrentMember,[Transactions]) +
([Time].CurrentMember.Lag(1),[Products].CurrentMember,[Transactions]) +
([Time].CurrentMember.Lag(2),[Products].CurrentMember,[Transactions]) ) /
(([Time].CurrentMember,Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) +
([Time].CurrentMember.Lag(1),Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) +
([Time].CurrentMember.Lag(2),Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) ) )
,4)
Remove unnecessary functions. Formatting should be left to the
reporting tool.
![Page 17: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/17.jpg)
MDX Optimization
( ( ([Time].CurrentMember,[Products].CurrentMember,[Transactions]) + ([Time].CurrentMember.Lag(1),[Products].CurrentMember,[Transactions])
+ ([Time].CurrentMember.Lag(2),[Products].CurrentMember,[Transactions])
) / (([Time].CurrentMember,Ancestor (Products.CurrentMember,
Products.Generations(2)),[Transactions]) + ([Time].CurrentMember.Lag(1),Ancestor (Products.CurrentMember,
Products.Generations(2)),[Transactions]) + ([Time].CurrentMember.Lag(2),Ancestor (Products.CurrentMember,
Products.Generations(2)),[Transactions]) ) )
Avoid unnecessary references to CurrentMember. It is
assumed without explicitly using a function
![Page 18: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/18.jpg)
MDX Optimization
( ( ([Time].CurrentMember,[Transactions]) + ([Time].CurrentMember.Lag(1),[Transactions]) + ([Time].CurrentMember.Lag(2), [Transactions]) ) / (([Time].CurrentMember,Ancestor (Products.CurrentMember,
Products.Generations(2)),[Transactions]) + ([Time].CurrentMember.Lag(1),Ancestor
(Products.CurrentMember, Products.Generations(2)),[Transactions]) +
([Time].CurrentMember.Lag(2),Ancestor (Products.CurrentMember, Products.Generations(2)),[Transactions]) ) )
Simplify formulae, no need to use 5 functions where 1 will
do. 3 CurrentMemberfunctions and 2 Lag
functions
![Page 19: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/19.jpg)
MDX Optimization
Sum(LastPeriods(3),Transactions)/ Sum(LastPeriods(3),(Ancestor (Products.CurrentMember,
Products.Generations(2)),Transactions))
Don’t use a function where direct referencing can be
performed. In this model Gen 2 of the Products dimension
will always be the same member
![Page 20: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/20.jpg)
MDX Optimization
Sum(LastPeriods(3),Transactions)/ Sum(LastPeriods(3),([All Merchandise],Transactions))
![Page 21: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/21.jpg)
MDX Optimization
Case When NotIsEmpty(Sum(LastPeriods(3),Transactions)) Then
Sum(LastPeriods(3),Transactions)/ Sum(LastPeriods(3),
([All Merchandise],Transactions))End
Only perform calculation when data to support the math exists
![Page 22: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/22.jpg)
MDX Optimization
Additionally you should break up the complex formula using an additional member:
Create a new member [Last 3 Month Transactions]Assign the formula:
Sum(LastPeriods(3),Transactions)
Then the new % Contribution formula becomes:NonEmptyMember [Last 3 Month Transactions]
Sum(LastPeriods(3),Transactions)/ Sum(LastPeriods(3),([All Merchandise],Transactions))
NonEmpty directive, coming in 11.1.1
![Page 23: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/23.jpg)
Agenda
• Dimension settings and usage• MDX optimization• Materialization
– Query Hints– Default– Query Tracking– Size – Choose your own adventure/have it your way materialization
• Data load
![Page 24: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/24.jpg)
Materiaization
• Query Hints• Default• Query Tracking• Size • Choose your own adventure/have it your way
materialization
![Page 25: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/25.jpg)
MaterializationQuery hints
• On Dimension/Hierarchy
![Page 26: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/26.jpg)
MaterializationQuery hints
• Dimensional intersections
![Page 27: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/27.jpg)
MaterializationDefault
• In Analytic Administration Services
• Through Maxl– execute aggregate process on database “database name” ;
![Page 28: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/28.jpg)
MaterializationQuery tracking based
• In Analytic Administration Services
• Through Maxlalter database “database name” enable query_tracking; MDX report definition;execute aggregate process on database “database name”
based on query_data;alter database “database name” disable query_tracking;
![Page 29: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/29.jpg)
Materialization
• Results of aggregate selection– Default selection
• 26 views– Hierarchy option
• 24 views– Dimensional Intersection
• 24 views– Query Tracking
• 2 view– No views were shared amongst all 4 aggregate selection
processes– Only 2 views were shared between more than 2 selection
processes– 7 views were shared in total
![Page 30: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/30.jpg)
MaterializationDatabase size
• In Analytic Administration Services
• Through Maxl– execute aggregate process on database “database name”
stopping when total_size exceeds “size factor”;
![Page 31: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/31.jpg)
MaterializationNumber of views
• In Analytic Administration Services
• Through Maxl– execute aggregate selection on database “database name”
selecting “number of views” views;
![Page 32: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/32.jpg)
Materialization
• By default Aggregate Storage Option is parallel threaded with two threads, can use up to 8
• When loading incremental data, aggregate views are also updated
• Materialization scripts can be saved and reused to eliminate regeneration of query tracked results
• The database can be available during materialization without data consistency issues
![Page 33: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/33.jpg)
Agenda
• Dimension settings and usage• MDX optimization• Materialization• Data load
– Behavior– Slice loading– Optimization
![Page 34: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/34.jpg)
Data LoadBehavior
• Within a buffer duplicate records are additive irrelevant of load rule settings
• When committing the buffer it adheres to data load rule setting related to overwrite, add to, or subtract from
• Single threaded, can use DLTHREADS cfg settings but thorough testing should be performed
• Materialized views are updated as part of the data load process during an incremental update
![Page 35: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/35.jpg)
Data LoadSlice loading
• Is the primary feature enabling Excel based lock and send and trickle feeding functionality
• Creates “subcubes” alongside the primary slice of the database
• Dynamic aggregations are performed across the necessary slices to provide query results
• Different materialized views might exist within a slice as compared to the primary slice of the database
![Page 36: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/36.jpg)
Data LoadOptimization
• Compression dimension should be across the load file• Consider removing aggregate views prior to an
incremental update of data• Data should be loaded as additive values• Multiple buffers can be used to parallel load the
database. Requires simultaneous Maxl processes to be executed
• Ignore Zeros and Missing values whenever possible, buffer setting
![Page 37: - Essbaseessbase.ru/Uploads/Aso/Optimizing ASO.pdfThe following is intended to outline our general product direction. It is intended for information purposes](https://reader033.fdocuments.in/reader033/viewer/2022042020/5e77ce309683035b8f450e4d/html5/thumbnails/37.jpg)
<Insert Picture Here>
Questions?????