Академический Документы
Профессиональный Документы
Культура Документы
HFM Optimization
p
Jonathan Berry
President & CEO
jberry@accelatis.com
203.331.2267
Ed DeLise
VP Sales & Marketing
Marketing, Principal
edelise@accelatis.com
678.296.3611
Agenda
1 Background
1.
2. Configuration
g
3. Data
4. Rules
What is Accelatis?
Background
Founded by Jonathan Berry
Hyperion
H
i Fi
Financial
i lM
Managementt D
Development
l
tT
Team 1998
1998-2008
2008
Director Engineering for HFM & FDM at Oracle
Team
Hyperion Technologists with combined 50 years of experience.
Tony Mitri
o Former Oracle Consulting Member Technical Staff
o Co-author of HFM Consolidation Engine and Rules Engine
Where we fit in
Without Accelatis
With Accelatis
Guesswork
Application
Administrator
Outsourced IT
Application
Administrator
IT
Product Support
pp
Management
IT
Collaborative
D i i
Decision
Making
Who owns
this?
Users
Outsourced IT
Users
Product Support
pp
Management
Proficient
User simulations, load generation, benchmarking &
predictive alerting.
Accelatis Clients
within a few
weeks
Proactive
Repeatable Optimization. Insight into user activity.
Monitoring, automation and continuous testing performed.
Procedural
3
Exploratory
Basic Monitoring. Reactionary review of data.
Reactionary
No monitoring.
monitoring Ad-hoc resources gathered for each issue.
issue
Monitor
A ti i t
Anticipate
Resolve
Optimize
Simulate
Challenges
1.
2.
Configuration
Components to tune
1.
Operating System
Web Server
Compression, Caching
3
3.
App Server
4
4.
Database
Oracle-specific tuning
10
Data: Tables
DCE, DCN Tables
DCN vary by parent: upper half of value dim
11
Data: Subcubes
SubCube Population
If #records > 100,000 consider changing org structure
SQL Example:
SELECT lEntity, lValue, count(*) as numRecs
FROM COMMA_DCE_1_2011
COMMA DCE 1 2011
GROUP BY lEntity, lValue
12
Data: Zeros
No reason for soft zeros
Possible erroneous hard zeros
Determine how many zeros are in each period
select * from COMMA_DCN_1_2005 where dp1_Input=0 and dp2_Input=0
and
dd
dp3_Input=0
3 I
t 0 and
d XXX
Then
p
_InputTransType
p
yp != 2 then SoftZero,, not
foreach Period if dp<PERIOD>
HardZero
13
14
Predefined
P
d fi d ffunctions
ti
Custom functions
Blocks of code
Time byy Entityy
2. Counters
Invocations by function
Invocations by specific line
P
Populating
l ti zeros
Subcube density
15
2.
3.
4
4.
5.
Functions
Timing Blocks
Iterators
Timings by Entity
Changes to SubCube population due to Rules
6
6. Remediation
16
17
WriteToFile
Example Calls
1.
2.
18
WriteToDatabase
Example Calls
1.
2.
*Be aware that the time to write the data to the database will affect overall
lid ti titime and
d ultimately
lti t l accuracy off titiming
i proportions.
ti
consolidation
2012 Accelatis, LLC
19
WriteToObject
Example Calls
1.
2.
20
Tracking Time
1. Adding timers to beginning and end of functions
2. Adding timers to blocks of code
3. Adding Iterators capturing lines of code called
21
Timers
1. How to capture time spent
Add timers
ti
to
t beginning
b i i
and
d end
d off functions
f
ti
Sub Calculate()
'Accelatis Instrumentation
Dim AccRules, accStartTime, accEndTime, accFunctionTrace
accFunctionTrace = "Calculate"
Calculate
Set AccRules=CreateObject("AccHFMRulesProfiling.RulesProfiling_Class")
accStartTime = AccRules.GetCurrentTime()
Call StandardCalculations (accFunctionTrace)
Call CalculateNetIncomeVarianceToPlan (accFunctionTrace)
Call ValidateVarianceCommentary (accFunctionTrace)
Call ValidateMiscExpenseDetail (accFunctionTrace)
Call ValidateFixedAssetDetail (accFunctionTrace)
Call ValidateBalancedBalanceSheet (accFunctionTrace)
Call ValidateFlashInput (accFunctionTrace)
Call CalculateCashFlow (accFunctionTrace)
'Accelatis Instrumentation
accEndTime = AccRules.GetCurrentTime()
Call AccRules.AddSample("Calculate",accFunctionTrace,, HS.Scenario.ID, HS.Scenario.Member, HS.Year.ID, HS.Year.Member, HS.Period.ID,
HS Period Member HS.Entity.ID,
HS.Period.Member,
HS Entity ID HS.Entity.Member,
HS Entity Member HS.Parent.ID,
HS Parent ID HS.Parent.Member,
HS Parent Member HS.Value.ID,
HS Value ID HS.Value.Member,
HS Value Member accStartTime,
accStartTime accEndTime)
End Sub
22
AFTER
Sub Calculate()
(
, Calculate))
Call CustomFunction(Parameters,
End Sub
Sub Translate()
Call CustomFunction(Parameters)
End Sub
Sub Translate()
Call CustomFunction(Parameters, Translate)
End Sub
Sub CustomFunction(parameters)
Do Stuff
Call WriteToFile(CustomFunction, parameters)
End Sub
23
Capturing POV
HS.<DIMENSION>.ID
and
HS.<DIMENSION>.Member
Example Usage
Call WriteToObject("Finished
j (
CalcRoutine ((Entity="
y & UCase(HS.Entity.Member)
(
y
) & ").)
) )
24
Putting it Together
Sub HelperFunction(accFunctionTrace)
'Accelatis Instrumentation
Dim AccRules, accStartTime, accEndTime, accFunctionTrace
accFunctionTrace = accFunctionTrace & HelperFunction
Set AccRules=CreateObject("AccHFMRulesProfiling.RulesProfiling_Class")
accStartTime = AccRules.GetCurrentTime()
Call OtherFunction1(accFunctionTrace)
Call OtherFunction2(accFunctionTrace)
If (test = TRUE)
'Accelatis Instrumentation
Call AccRules.AddLineCounter(lineCountIDDefinedSomeplace, HelperFunction, lineNumber)
Call DoOneThing(accFunctionTrace)
Else
Call DoAnotherThing(accFunctionTrace)
End If
Call OtherFunction3(accFunctionTrace)
'Accelatis Instrumentation
accEndTime = AccRules.GetCurrentTime()
Call AccRules.AddSample(HelperFunction, accFunctionTrace, HS.Scenario.ID, HS.Scenario.Member, HS.Year.ID,
HS.Year.Member, HS.Period.ID, HS.Period.Member, HS.Entity.ID, HS.Entity.Member, HS.Parent.ID,
HS.Parent.Member,, HS.Value.ID,, HS.Value.Member,, accStartTime,, accEndTime))
End Sub
2012 Accelatis, LLC
25
Value
10
11
NumRecords
72
34
Parent
8
8
Value
10
11
NumRecords
72
34
26
Gotchas
1. Multiple VBScript engines
Do not use global variables as counters
Total time calculated may be more than actual elapsed time
due to multiple threads
2. Performance Impact of Instrumentation
If tracking function time, write data outside of timings
If using
g Objects,
j
make calls asynchronous
y
so writing
g of data
happens in queue on background thread. Do not create thread
for every call!
3. Eliminate unnecessary calls to routines from global scope. This
can greatly increase load time and application startup time
27
Gotchas (cont)
4. Writing to file from multiple VBScript engines is dangerous.
Each instance may block access to the file and cause
deadlocks as well as major performance issues.
Doing so effectively forces HFM Consolidation into single
threaded operation.
5. Resolution of timing using the Timer function in VBScript is >=
15ms. Using this built-in
built in timing function can amplify timing
calculation errors over many iterations.
28
Analyzing Results
Manual Options
1.
2.
29
Overall Inclusive
Function Time
Most Time
Consuming Inclusive
Functions
Overall Exclusive
Function Time
Most Time
Consuming Exclusive
Functions
Function Call
Frequency
Most Frequently
Called Functions
30
31
Iterator frequency
32
View time by Entity, Value and Rules Function (to pinpoint bottlenecks)
33
Upcoming Webinars
Top Notch Oracle EPM Performance: Load Testing and User Simulation
On Tuesday April 10, we will cover the primary aspects of meaningful load testing and
user simulation, including:
Essbase, Planning, HFM, and all associated products
4 phases Design, Validation, Execution and Analysis
Single and Multi-User Performance, Concurrency and Longevity
Test
Test Execution monitoring,
monitoring test-refinement
test refinement
Analysis identifying bottlenecks and remediation
Making
g Oracle EPM Run More Smoothly:
y The APM Proficiency
y Model
On Tuesday May 8th, we will discuss mastering the black art of Oracle EPM
Application Performance Management. We will cover:
Better system performance
Less guesswork when troubleshooting issues
Providing
P idi fi
firstt class
l
user experiences
i
Reducing risk during critical, high use periods
Collaborate between departments effectively
To register
register, or to view past sessions
sessions, go to:
http://www.accelatis.com/webinars-hyperion
2012 Accelatis, LLC
34
Questions?
Jonathan Berry
President & CEO
jberry@accelatis.com
203
331 2267
203.331.2267
Ed DeLise
VP Sales & Marketing, Principal
edelise@accelatis.com
678
296 3611
678.296.3611
35
36
37
38
39
40
Overall Inclusive
Function Time
Most Time
Consuming Inclusive
Functions
Overall Exclusive
Function Time
Most Time
Consuming Exclusive
Functions
Function Call
Frequency
Most Frequently
Called Functions
41
42
Iterator frequency
43
View time by Entity, Value and Rules Function (to pinpoint bottlenecks)
44
45