Exceptions to the Rule: Essbase Design Principles That Don t Always Apply



Similar documents
Optimizing Oracle Essbase Formulas & Calc Scripts

ESSBASE ASO TUNING AND OPTIMIZATION FOR MERE MORTALS

Optimization Techniques for Hyperion System 9 BI+ Essbase Analytics

Essbase Calculations: A Visual Approach

Getting Value from Big Data with Analytics

Using Oracle Data Integrator with Essbase, Planning and the Rest of the Oracle EPM Products

What s New in Oracle EPM. Edward Roske, CEO info@interrel.com

Optimizing the Performance of Your Longview Application

Beyond Plateaux: Optimize SSAS via Best Practices

Top 10 Performance Tips for OBI-EE

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

Which Reporting Tool Should I Use for EPM? Glenn Schwartzberg InterRel Consulting info@interrel.com

Data Compression in Blackbaud CRM Databases

Performance rule violations usually result in increased CPU or I/O, time to fix the mistake, and ultimately, a cost to the business unit.

Cognos Performance Troubleshooting

Enterprise Performance Tuning: Best Practices with SQL Server 2008 Analysis Services. By Ajay Goyal Consultant Scalability Experts, Inc.

System Requirements Table of contents

SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011

Exam : 4H : Hyperion Certified Design Lead Hyperion System9 Planning 4.1. Title. Ver :

10 Tips for Optimizing the Performance of your Web Intelligence Reports. Jonathan Brown - SAP SESSION CODE: 0902

Sawmill Log Analyzer Best Practices!! Page 1 of 6. Sawmill Log Analyzer Best Practices

Q & A From Hitachi Data Systems WebTech Presentation:

Birds of a Feather Session: Best Practices for TimesTen on Exalytics

Cleaning Up Your Outlook Mailbox and Keeping It That Way ;-) Mailbox Cleanup. Quicklinks >>

Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.

Whitepaper: performance of SqlBulkCopy

ImageNow for Microsoft SQL Server

VI Performance Monitoring

Boost SQL Server Performance Buffer Pool Extensions & Delayed Durability

<Insert Picture Here> Extending Hyperion BI with the Oracle BI Server

Dell Microsoft Business Intelligence and Data Warehousing Reference Configuration Performance Results Phase III

Crystal Reports Server 2008

SAP HANA SAP s In-Memory Database. Dr. Martin Kittel, SAP HANA Development January 16, 2013

Hardware Configuration Guide

Oracle Exalytics Briefing

Geospatial Server Performance Colin Bertram UK User Group Meeting 23-Sep-2014

Analytical Processing: A comparison of multidimensional and SQL-based approaches

What is Project Financial Planning?

Enhancing SQL Server Performance

SQL Server Performance Intelligence

One of the database administrators

SUN ORACLE EXADATA STORAGE SERVER

An Accenture Point of View. Oracle Exalytics brings speed and unparalleled flexibility to business analytics

sql server best practice

TIBCO Spotfire Metrics Modeler User s Guide. Software Release 6.0 November 2013

Oracle Exam 1z0-591 Oracle Business Intelligence Foundation Suite 11g Essentials Version: 6.6 [ Total Questions: 120 ]

SQL Server Business Intelligence on HP ProLiant DL785 Server

Physical Data Organization

Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC

Capacity Planning Process Estimating the load Initial configuration

In-Memory Databases Algorithms and Data Structures on Modern Hardware. Martin Faust David Schwalb Jens Krüger Jürgen Müller

XenDesktop 7 Database Sizing

Whitepaper. Innovations in Business Intelligence Database Technology.

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

In-Memory Analytics: A comparison between Oracle TimesTen and Oracle Essbase

Performance Verbesserung von SAP BW mit SQL Server Columnstore

AIX NFS Client Performance Improvements for Databases on NAS

I. General Database Server Performance Information. Knowledge Base Article. Database Server Performance Best Practices Guide

Data Mining in the Swamp

Oracle BI EE Integration with Hyperion Sources

Overview of I/O Performance and RAID in an RDBMS Environment. By: Edward Whalen Performance Tuning Corporation

ORACLE ESSBASE SPREADSHEET ADD-IN RELEASE ONLINE HELP

Tuning Tableau Server for High Performance

About Me: Brent Ozar. Perfmon and Profiler 101

361 Computer Architecture Lecture 14: Cache Memory

Drivers to support the growing business data demand for Performance Management solutions and BI Analytics

Optimizing the Performance of the Oracle BI Applications using Oracle Datawarehousing Features and Oracle DAC

Resource Monitoring During Performance Testing. Experience Report by Johann du Plessis. Introduction. Planning for Monitoring

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

Optimizing Performance. Training Division New Delhi

Mobile Application Performance

Oracle Hyperion EPM Update. Presented by: Ralph Shields October 24, 2014

my forecasted needs. The constraint of asymmetrical processing was offset two ways. The first was by configuring the SAN and all hosts to utilize

White Paper. Optimizing the Performance Of MySQL Cluster

MAGENTO HOSTING Progressive Server Performance Improvements

Copyright 1

Virtuoso and Database Scalability

VERITAS Database Edition for Oracle on HP-UX 11i. Performance Report

Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)

Amadeus SAS Specialists Prove Fusion iomemory a Superior Analysis Accelerator

Data Deduplication: An Essential Component of your Data Protection Strategy

Oracle Rdb Performance Management Guide

How to Optimize the MySQL Server For Performance

HFM Consolidation Demystified

Recommendations for Performance Benchmarking

Deployment Planning Guide

Performance Baseline of Oracle Exadata X2-2 HR HC. Part II: Server Performance. Benchware Performance Suite Release 8.4 (Build ) September 2013

Benchmarking Hadoop & HBase on Violin

Accelerating Wordpress for Pagerank and Profit

Disk Storage Shortfall

Ckpdb and Rollforwarddb commands

Load Balancing BEA WebLogic Servers with F5 Networks BIG-IP v9

Storage Performance Testing

Transcription:

Exceptions to the Rule: Essbase Design Principles That Don t Always Apply Edward Roske, CEO Oracle ACE Director info@interrel.com BLOG: LookSmarter.blogspot.com WEBSITE: www.interrel.com TWITTER: Eroske

3 About interrel Reigning Oracle Award winner EPM & BI Solution of the year Three Oracle ACE Directors for Hyperion Oracle Platinum Partner One of the 100 fastest growing tech companies in the USA (CRN Magazine, 2007-2010) Authors of the 8 Best Selling books on Hyperion & Essbase Only 4 books in the world on v11 All available on LuLu.com Press Infra structure Consulting Support Focused exclusively on Oracle EPM & BI Training

8 Hyperion Books Available: Essbase (7): Complete Guide Essbase System 9: Complete Guide Essbase System 9: End User Guide Essbase 11: Admin Guide Essbase Studio 11 Smart View 11: End User Guide Planning: End Users Guide Planning: Administrators To order, check out www.lulu.com 4 Copyright 2007, Hyperion. All rights reserved.

5 Disclaimer These slides represent the work and opinions of the presenter and do not constitute official positions of Oracle or any other organization. These material has not been peer reviewed and is presented here with the permission of the presenter. These should not be copied, recorded or reproduced without the expressed written permission of interrel Consulting.

2011 LinkedIn.Com Analysis of Years of Work Experience Look for yourself at http://www.linkedin.com/company/interrel-consulting/statistics

We have always been told we have to follow the rules! Today I m going to teach you it is sometimes good to break the rules.

There isn t one right answer Tuning Tuning guidelines can contradict other tuning guidelines Tuning for calculations vs. tuning for retrievals Sometimes these tuning tips will have significant impact, either positive or negative Test, test, test!!

Don't put more than one database in an application

How Many Databases per Application? Usually one database per application If one database crashes, all databases could crash If one database is heavily used, this could negatively impact performance of the other databases

The Exceptions to the Rule You need to use XREF to share data across databases Essbase server process is shared across databases Performance will be faster Think Oracle Hyperion Planning Currency databases Multi-currency applications

Always use group level security

The Exception to the Rule Unless almost every user has unique access where it is redundant to have one to one users to groups Recent Ask a Guru question I have a one-to-one relationship between the department and the planner in all cases except 1 - Account, scenario, and version security will be set up for everyone the exact same (with only 1 exception).

Recent Ask a Guru questions (cont.) Typically, I set up security for the Planning dimensions, task lists, forms, business rules, etc. using groups but I'm not sure I should go through the trouble of creating all these groups if there is only one user in each of them. I am contemplating creating one planning group and one admin group and granting security to everything except department based on this group. I would then set up security on the department based on the individual users. What do you think??

Keep your Block size small

Dense Dimensions Make Up Cells within a Block Measures (dense) May Apr Qtr1 Mar Feb Jan Sales COGS Margin Mkt exp. Payroll Misc. Tot. Exp. Profit Actual Budget Var. Var% Scenario (dense)

Calculate Block Size Data block size is determined by the amount of data in a particular combination of dense dimensions Data block size is 8n bytes, where n is the number of cells that exist for that combination of dense dimensions 8 to 100 KB is the recommended block size If data blocks are smaller than 8K, the index is very large, forcing Essbase to write to and retrieve index from disk If data blocks are larger than 100KB, intelligent calc does not work efficiently and performance can be slower

The Exception to the Rule Testing proves that a bigger block size performs better 64 bit Essbase With the 64-bit engine, larger blocks in the 1 MB range have shown significant reductions in calculation times Performance gains are attributable to wider bandwidth disk and memory buffer subsystems handling larger I/O chunks

Make Accounts Dense

The Exception to the Rule If you have a large database and you need to frequently add new accounts or change existing accounts, consider making Accounts sparse Especially in Planning where you need more frequent database refreshes for newly added accounts

Don't use a cross dimensional operator on the left side of an equal sign

Try to Limit Cross-Dims Using cross-dimensional operator: FIX (Sales) Budget = Actual * 1.1; ENDFIX Faster, easier to maintain: FIX (Budget) Sales = Sales->Actual * 1.1; ENDFIX 22

Left Hand Cross-Dims Don t ever do this: Sales->Budget = COGS->Actual * 1.1; Write it like this: FIX (Budget) Sales = COGS->Actual * 1.1; ENDFIX

The Exception to the Rule You have a special case where you need to force creation of blocks. Using both a dense and sparse member in left hand side of an equation will create blocks without the nasty Createblocksonequation command. SALES( Sales->Budget = COGS->Actual * 1.1; )

Don't hard code in formulas

The Exception to the Rule Sometimes performance is much better if you hardcode something in a formula versus using costly functions like @prior Can be MUCH faster than @PRIOR IF(@ISmbr("Jan") and @ISMBR("FY10")) BegBal = "Sales"->"Dec"->"FY09"; ELSEIF(@ISmbr("Jan") and @ISMBR("FY09")) BegBal = "Sales"->"Dec"->"FY08"; END

FIX on sparse, IF on dense

Focusing Calculations Two most common methods Fix If Other methods: CrossDim operator MemberSet functions Relationship functions Variables

If/Else/ElseIf/EndIf Conditional processing is often needed to process business rules Can include complex conditions And, Or, Not, etc. Syntax IF (condition) ElseIf/Else EndIf; Summary Condition must be if parenthesis In a calc script, associate with a member name Does really matter which member name Each IF must end with ENDIF (well not really)

Fix/EndFix FIX Used to focus or limit a calculation Used extensively Most effective when used on members of sparse dimensions Only blocks that meet the Fix criteria are processed Remaining blocks are simply skipped Typical uses Only calculate one scenario Limit calc to current year Syntax Fix(Member Names, Functions Etc.) ENDFIX

To IF or FIX Generally, IF works best on dense dimension members Particularly when ElseIf or Else are included Block is only brought into memory once and all related conditions are processed Fix would bring block in multiple times Conversely, FIX works best on sparse dimension members Old saying Fix on Sparse, If on dense If you re dense, fix on sparse?

The Exception to the Rule FIX works properly on dense members May result in all blocks being processed All statements between the FIX and ENDFIX are executed as a block FIX statements can be nested Multiple members from the same dimension are treated as or In other words, all members will be processed If a dense member is in a fix with sparse members, only those dense members are looked at within the block, so fixing on the combo of both can be good

Always follow the Hourglass (or Hourglass on a stick) method of dimension ordering

Dimension Ordering based on Member Counts Example Dimension Type-Size Accounts D 94 Time Periods D 21 Metrics (Hrs, AHR, $) D 14 Scenarios AS 9 Job Code AS 1,524 Organization AS 2,304 Versions NAS 7 Years NAS 7 D=Dense, AS=Aggregating Sparse, NAS=Non-Aggregating Sparse

Dimension Ordering based on Dimension Density - Example Dimension Type-Size Density After Calc Density After Load Data Points Created Time Periods D 21 85% 85% - Metrics (Hrs, AHR, $) D 14 22% 22% - Accounts D 94 3 % 2% - Scenarios AS 9 22% 11% 199 Job Code AS 1,524.56%.23% 853 Organization AS 2,304.34%.09% 783 Versions NAS 7 19% 19% - Years NAS 7 14% 14% - D=Dense, AS=Aggregating Sparse, NAS=Non-Aggregating Sparse

How to Determine Individual Dimension Density 1. Make the dimension the lone Dense dimension 2. Load and calculate just that dimension 3. Check the block density value in Administration Services >> Database >> Properties >> Statistics Ordering the dense dimensions from most dense to least dense maximizes the clustering of the data A more condensed database will perform better than one where the data has a highly dispersed population of data

Hourglass on a Stick Typical Hourglass Original Accounts (D) Time Periods (D) Metrics (D) Years Versions Scenarios Job Code Organization Employee Status Fund Group Optimized Time Periods (D) Metrics (D) Accounts (D) Job Code (AS) Organization (AS) Years (NAS) Versions (NAS) Scenarios (NAS) Employee Status (Attr Dim) Fund Group (Attr Dim) Modified Hourglass D=Dense, AS=Aggregating Sparse, NAS=Non-Aggregating Sparse

The Exception to the Rule Outline order impacts retrievals Sparse retrievals Sparse dimensions down the rows or across the columns Accesses multiple indexes and multiple blocks Slower retrieval times

Dense retrievals Dense dimensions down the rows and across the columns Accesses one index entry and one block Faster retrieval times So how your reports are designed may impact what you choose as sparse and dense If retrieval performance is slow, you may also want to consider moving up heavily queried dimensions in the outline

The Exception to the Rule You want to use parallel calculation Because HGoaS usually puts dimensions at the bottom of the outline that are getting fixed on, it could prevent parallel calculation You may be able to overcome this by increasing the taskdims.

Serial Calculation Default Current Essbase behavior Each calc is executed serially Parallel Calculation Set at system, application, database or calc script Generates tasks Schedules tasks to run on up to 4 threads Operating system can schedule each thread on a separate CPU

Parallel Calculation Apply multiple processors to a calc Only straight forward calcs can use this If order dependent portions, calculated in serial Maximum of 4 processors Recommend 1 less than number on server

Parallel Calculations If parallel processing is feasible, Essbase splits the request into independent tasks that can be run concurrently Set at the server, application, database or individual calc script level Can run on up to 4 threads Essbase will analyze the outline and calculation request to determine if parallel calc is possible Check the application log to see how parallel calc is being used Calculating in parallel with [2] threads

Parallel Calculations Essbase will review the request Set number of worker threads In essbase.cfg CALCPARALLEL appname dbname n In calc script SET CALCPARALLEL n N = 1 through 4; default is 1 Set number of dimensions in task suffix In essbase.cfg NUMTASKDIMS appname dbname n In calc script SET NUMTASKDIMS n N = 1 to number of sparse dimensions Use when fixing on the last sparse dimension

Exception Sometimes parallel calculation is slower Small set of data being processed Fix limits the task dimensions Complex formula interdependencies will force a serial calc

Always give enough memory to load the whole index into memory Make the data cache as large as possible if you have plenty of RAM

Cache Definitions Index cache - buffer in memory that holds index pages (.ind). How many index pages are in memory at one time depends upon the amount of memory allocated to the cache. Data file cache - buffer in memory that holds compressed data files (.pag files). Essbase allocates memory to the data file cache during data load, calculation, and retrieval operations, as needed. Only used with direct I/O. Data cache - buffer in memory that holds uncompressed data blocks. Essbase allocates memory to the data cache during data load, calculation, and retrieval operations, as needed.

Index Cache Index pages in index cache Index pages on physical disk RAM Disk

Data Cache Disk blocks in data cache Disk blocks on physical disk RAM Disk

Paging New requests Index pages Data blocks Index pages ESS.IND Data blocks ESS.PAG Memory Old requests Physical disk

Factors Affecting Cache Sizing Database size Block size Index size Available memory Data distribution Sparse / dense configuration Needs of database (e.g. complexity of calculations) Parallel Calculation

Priority for Memory Allocation 1. Index Cache 2. Data File Cache 3. Data Cache 4. Dynamic Calculator Cache

Guideline for Index Cache Default Buffered I/O: 1024 KB (1048576 bytes) Direct I/O: 10240 KB (10485760 bytes) Guideline: Combined size of all essn.ind files, if possible; otherwise, as large as possible Do not set this cache size higher than the total index size, as no performance improvement results

Guideline for Data Cache Default 3072 KB (3145728 bytes) Guideline 0.125 * Combined size of all essn.pag files, if possible; otherwise as large as possible

Guideline for Data Cache Increase value if any of these conditions exist: Many concurrent users are accessing different data blocks Calculation scripts contain functions on sparse ranges, and the functions require all members of a range to be in memory (for example, when using @RANK and @RANGE) For data load, the number of threads specified by the DLTHREADSWRITE setting is very high and the expanded block size is large

The Exception to the Rule Index Cache Last index page into RAM, next out of RAM as cache is filled Default is 1024 Generally, set to hold index in RAM Cache can be too big if index is huge

The Exception to the Rule Data Cache Last block into RAM, next out of RAM as caches are filled Default is 3072 Uncompresses block in RAM (using more data cache) Cache can be too big

The Exception to the Rule On cache (especially index) In older versions, there was a point of diminishing returns after about 50-55 percent of the index was in memory; while it could help, the ROI was minimal compared with up to 55%

The Exception to the Rule If you have limited resources for many applications and not enough memory to go around, try one of the following guideline for the data cache: Uncompressed Block Size X 200 # of Data Block writes X Uncompressed Block Size # of Commit Blocks X Uncompressed Block Size # of Lock Blocks X Uncompressed Block Size

The Exception to the Rule If you have limited resources for many applications and not enough memory to go around, try the following guideline for the index cache: 1. Set the initial cache setting to 20% of the size of the index file 2. Run a consolidation / calculation and check the value of the hit ratio 3. If the hit ratio exceeds 90%, then the cache is fully tuned 4. If the hit ratio is lower than 90%, increase the cache setting to 30% of the index file size and calculate again 5. Repeat this process until the hit ratio is at 90% or higher

Always build calculations into the Essbase database

Push Calculations to Essbase Reporting tools have an expansive lists of formula and calculation capabilities But this means processing on the Reports server If you can, push calculations back to the Essbase server Benefits Faster Standard formula across all reports accessible to users (Data integrity) Central place for business rule / calculation logic (Update the formula once vs. several times throughout all reports)

The Exception to the Rule Simple ratio or variance calculations that do not calculate correctly in Essbase due to: Attribute dimensions Other calculation dependencies Infrequent calculations Calculations with lots of exceptions

Avoid repeating members in a dimension

Avoid repeating members in a dimension Repeating indicates a need to split dimensions Splitting dimensions reduces outline redundancy Easier for users to understand the outline and report

The Exception to the Rule Be careful! The design principle will create a bigger database (exponentially) E.g. If you split Accounts into Accounts and Metrics and both dimensions are dense, your block size increase significantly Time Time Metrics Account Account

The Exception to the Exception Creating alternate time rollups like YTD Jan, YTD Feb are good examples of when you may want to split repeating members into a separate dimension If you are doing calculations where you are trying to specify ranges of periods/year (rolling averages for example) the extra time periods mess it up If you have alternate time rollups like YTD Jan, YTD Feb, this may be better designed as an analytic dimension especially in ASO Add a new view dimension (dynamic) Base member for loading

Another Exception to the Exception In dense dimensions unary operations are faster than any other type of calculation So for ratios, use shared members with the proper sign to perform the calculation Not only does it make calculation faster, it also allows the user to see what made up the formula

Summary

Keep in Mind: Tuning It is ok to break the rules There isn t one right answer Tuning Tuning guidelines can contradict other tuning guidelines Tuning for calculations vs. tuning for retrievals In some databases, these tuning tips will have significant impact. In other databases, the tuning tips won t Test, test, test!!

The Exception to the Rule: Essbase Design Principles That Don t Always Apply Edward Roske, CEO Oracle ACE Director info@interrel.com BLOG: LookSmarter.blogspot.com WEBSITE: www.interrel.com TWITTER: Eroske