Вы находитесь на странице: 1из 77

1

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Exalytics Best Practices


-- Getting the Most out of Your Oracle Exalytics Deployment
Oct. 3, 2012

Deb Bhattacharjee
Director

Lionel Hsu
Consulting Member of Technical Staff

Saugata Chowdhury
Consulting Member of Technical Staff

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

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 Oracles products remains at the sole discretion of Oracle.

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Agenda
What is Exalytics? Exalytics Performance Tuning Exalytics Considerations

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

WHAT IS EXALYTICS?
5 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Exalytics In-Memory Machine


Oracle Oracle Exalytics Exalytics is is the the industry's industry'sfirst first in-memory in-memory machine machinethat that delivers delivers the the fastest fastestperformance performancefor for business businessintelligence intelligenceand and planning planning applications applications

Benefits
Speed-of-Thought Interactive Visual Analysis Faster Planning Cycles with Richer Models Quick to Deploy, Supports More Users

Unique Features
In-memory Analytics Accelerates BI and EPM Apps Fits with existing data sources, infrastructure Full-stack optimizations hardware & software Optimized with Exadata InfiniBand

AVAILABLE TODAY

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Components

Memory Optimized Hardware


(1TB RAM, 40 cores)

BI Foundation Suite Software


(OS, middleware, BI)

In-Memory Software
(TimesTen for Exalytics and Optimized Essbase)

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle Exalytics Hardware


Memory 1 TB RAM Compute 4 Intel Xeon E7-4870, 40 cores total Networking 40 Gbps InfiniBand 2 ports 10 Gbps Ethernet 2 ports 1 Gbps Ethernet 4 ports 8 Gbps FibreChannel 2 ports Storage 3.6 TB HDD Capacity

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Storage Configuration

600 GB SAS - 0 600 GB SAS - 1

RAID 1

/boot (99MB) boot partition / (447GB) Operating system, logs, temp space

600 GB SAS - 2
600 GB SAS - 3 600 GB SAS - 4 600 GB SAS - 5 RAID 5 /u01(1.7TB) software, TT data files

Single Disk Fault tolerant


Separate OS and Data disks

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Software Components


Browser/Mobile
WLS (bi_server) (analytics app)
Javahost (Chart Engine) Timesten DB

OBIPS (sawserver)

OBIS (nqserver)

Webcat

Repository Essbase

Exalytics

Data Warehouse

10

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Some Performance Datapoints


Throughput Comparison - Baseline vs software optimization (datasource remaining constant) s
700 600 563 500 400 368 300 200 100 0 0 10 20 30 40 # of Virtual Users Baseline - Throughput Exalytics - Throughput 50 60 70 80 205 146 235 194 151 121 127 71 493 605 619 637

2.7x throughput gain for on Exalytics when compared to 11.1.1.5 on same hardware (comparing peak throughput of 637 vs 235) Baselines throughput actually dropped under load due to lock contentions

11

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Throughput

Exalytics Some Performance Datapoints


Response Time Comparison (Slowest transactions) - Baseline vs. Exalytics (non-Exadata)s

BI Query reporting w/ Exalytics on Oracle DB In-memory aggregates (Adaptive In-Memory Cache) vs. the baseline DW: 18X faster on the average Individual dashboard response time gain upto 45x (Filter Department)

12

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Some Performance Datapoints


Response Time Comparison (Slowest transactions) - Baseline vs. Exalytics w/ Exadata datawarehouses

BI Query reporting w/ Exalytics on Exadata 23X average response time improvements thanks to in-memory aggregates, fast interconnect and SQL optimizations for Exadata as compared to the base system Individual transaction gains upto 60X (Filter-Department)
13 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Some Performance Datapoints


Response Time improvement for end-to-end scenario for Planning PSB usecase with Essbase s
600 500 400 300 200 100 0 20 40 60 80 100

Avg ResponseTime in sec (Exalytics) Avg Response Time in sec (11.1.1.2.1)

About 5x response time improvement under load 7x improvement in CPU Utilization by Essbase

14

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Some Scalability Datapoints


Response Time improvement for MDX Queries and interactive Calc under load with Essbase BSO Cubes

Up to 93x response time improvement with individual MDX Queries Up to 15x response time improvement for individual interactive calc scripts About 10x overall throughput improvement in mixed load scenarios accompanied by 1.8x CPU usage improvement

15

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE Runtime Performance for dashboard navigation


Less than 5% overhead for dashboard navigation Setup
Bare metal : 40 cores , 1 TB RAM OVM ver 3.0.3: Dom 0 pinned to 10 cores, 40 vcpu for OBIEE VM and 40 vcpu for TT

Performance characteristics with OVM

Exalytics

Metrices

Bare Metal (40 Cores)

Virtualized OBII 40 vcpu TT 40 vcpu


60 329

Comments

No of users (0 thinktime) 60 Throughput (tps) 337

<5% overhead in virtualized environment with same core count

Avg response time (sec) 0.18 Total CPU % (BI + TT) 91%

0.18 93%

16

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Essbase BSO Interactive Calc and Query
Setup
Bare metal : 40 cores , 1 TB RAM OVM ver 3.0.3: Dom 0 pinned to 10 cores

Performance characteristics with OVM

Less than 10 % overhead in virtualized environment compared to bare metal

Throughput Txn/sec

30 25 20 15 10 5 0

25.5 22.6 21.7 16.3 15.7 9.1 8.4

22.9

Metal - 40 cores 1 2 3 4 # CPU Sockets and # of Essbase instances OVM -- 40 cores

17

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

EXALYTICS PERFORMANCE TUNING


18 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Performance Map


JVM Heap size Analytics app ConnectionPool Analytics app session timeout WLS LDAP connection pool Log folder location WLS (bi_server) (analytics app) JVM Heap Size for Trellis Charts Thread Pool size Javahost Clustering Temp/log folder location DB connection Log Level

Browser/Mobile

Javahost (Chart Engine)

Timesten DB
OBIPS (sawserver) OBIS (nqserver) Hardware Acceleration flag Logical SQLs/Physical SQLs Init block Server Thread pool DB Gateway connection pool OBIS Cache Temp/log folder location Log level

Hardware Acceleration flag Chart Thread Pool OBI PS Cache Session timeouts Cursor Wait Time Memory Quota Temp/log folder location

Webcat

Repository Essbase

Exalytics

Data Warehouse

19

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Set the default log level to Error
Log levels should be the first place to check while debugging performance issues

Set the right Log Level

20

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Move tmp/log files to RAMDisks
Move temp files and log files to ramdisk for better scalability

OBIPS cd $BI_HOME/instances/instance1/tmp/OracleBIPresentationServicesComponent mv coreapplication_obips1 coreapplication_obips1.localDisk ln -s /dev/shm/coreapplication_obips1 .\ Javahost mkdir /dev/shm/coreapplication_obijh1 cd $BI_HOME/instances/instance1/tmp/OracleBIJavaHostComponent mv coreapplication_obijh1 coreapplication_obijh1.localDisk ln -s /dev/shm/coreapplication_obijh1 .\ OBIS tmp folder mkdir /dev/shm/coreapplication_obis1 cd $BI_HOME/instances/instance1/tmp/OracleBIServerComponent mv coreapplication_obis1 coreapplication_obis1.orig ln -s /dev/shm/coreapplication_obis1 . OBIS Sorting/Working directory: since temp folder is pointing the RAMDISK from above settings, use default for sorting/working directory so it will be using RAMDISK as well WORK_DIRECTORY_PATHS = ""; (blank means using default path)

21

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
I/O buffer size
OBIS file buffer size

Increase file buffer size to 128KB to ensure good write to disk performance of sorting and cache Population (28.5x improvement in 11.1.1.7 )

CACHE_FILE_BUFFER_SIZE = 128KB; (in NQConfig.INI)

22

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Caching
OBIPS Caches (instanceconfig.xml)

Leveraging large RAM to bump up OBI PS Caching


<Cache> <CatalogXml> <MaxAgeMinutes> : 240 <Cache> <CatalogXml> <MaxLastAccessedSeconds>: 14400 <Cache><Query><MaxEntries>: 5000 <Cache><Query><AbsoluteMaxEntries>: 20000 <Cache><Query><CruiseEntries> : 3000 <Cache><Query><ForceLRU> : true <Cache><Accounts><CleanupFrequencyMinutes>:14400 <Cache><AccountIndex><CleanupFrequencyMinutes>:14400 <Cache><CatalogAttributes> <CleanupFrequencyMinutes>:14400

OBIS Cache settings (NQSConfig.INI)


[CACHE] ENABLE = YES; MAX_CACHE_ENTRIES = 5000; MAX_CACHE_ENTRY_SIZE = 256 MB; MAX_ROWS_PER_CACHE_ENTRY = 100000 ; // Too many rows in cache can slow down performance [SERVER] INIT_BLOCK_CACHE_ENTRIES = 5000;

23

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Configure Right Threadpool Size
OBIPS Chart Threadpool size(instanceconfig.xml)

OBIPS has a thread pool for Javahosts. Its size needs to be the total number of threads allowed in all Javahosts.
For example, there are two Javahost instances . Each has 300 threads defined in its own configuration file, and then the Max size for OBIPS threadpool size needs to be 600 (300 + 300).
<ThreadPoolDefaults> <ChartThreadPool> <MinThreads>300</MinThreads> <MaxThreads>600</MaxThreads> <MaxQueue>4096</MaxQueue> </ChartThreadPool> </ThreadPoolDefaults>

Javahost Threadpool size (config.xml)


$BI_HOME/instances/instance1/config/OracleBIJavaHostComponent/coreapplication_obijh1/config.xml <JobManager> <MinThreads>300</MinThreads> <MaxThreads>300</MaxThreads> <MaxPendingJobs>300</MaxPendingJobs> </JobManager>

OBIS Threadpool (in NQConfig.INI)


SERVER_THREAD_RANGE = 500-1000; DB_GATEWAY_THREAD_RANGE = 500-1000; AGGREGATE_THREAD_POOL_SIZE = 5;

24

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Configure Right connection pool size
OBIS RPD
AdminTool: Connection Pool -> General Tab -> Maximum connections

WLS
LDAP connection pool size in WLS, needs to meet the concurrent login rate

25

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Configure Max connections/Sessions
WLS /analytics plug-in Max connections

bridgeconfig.properties ($BI_HOME/user_projects/domains/bifoundation_domain/config/fmwconfig/biinstances/coreapplication/bridgeconfig.properties) oracle.bi.presentation.sawconnect.ConnectionPool.MaxConnections=512

TimesTen max connection

Make sure you have enough Semaphore


/sbin/sysctl -w kernel.sem=2048 (to set the value of kernel.sem) /sbin/sysctl kernel.sem (to check the value of kernel.sem) kernel.sem = 2048 64000 256 64

In the Timesten server side DSN entry


For example
[crm_dwh2_adm] Driver=/home/tt/TimesTen/dev/lib/libtten.so DatabaseCharacterSet=US7ASCII ... Connections=300 ...

OBIS Session LIMIT (NQSConfig.INI)


[SERVER] MAX_SESSION_LIMIT = 10000 ;

26

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Check Session Timeouts
WLS Analytics plug-in session timeout

Set the Session timeout(in seconds) to control the timeout of the sessions in Analytics plug-in in WLS The timeout should be in sync with the session timeout in OBI PS.

OBIPS Session timeout

<ClientSessionExpireMinutes>5</ClientSessionExpireMinutes>

27

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Exalytics Memory Tuning

OBIPS Memory Quota Checking

Set the following shell variable for OBIPS in opmn.xml SIEBEL_MEMORY_THREADALLOC_QUOTA=8388608 (e.g to set thread quota to 8MB) UI will throw an error when a users request consumes more than this memory

For very large TimesTen Datastore (>256GB), The following Linux kernel and Timesten settings need to be changed. Please refer to Exalytics Best Practices doc for details.

kernel.shmmax/kernel.shmall/kernel.sem

/proc/sys/vm/nr_hugepages
/proc/meminfo: Hugepagesize ttendaemon.options: linuxLargePageAlignment

28

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
JVM heap size

WLS BI Managed Server Heap sizes

This needs to be modified based on the number of concurrent sessions and BIP reports.
SERVER_MEM_ARGS="-Xms256m -Xmx2048m -XX:MaxPermSize=512m (setDomainEnv.sh) export SERVER_MEM_ARGS

Javahost heap sizes (opmn.xml)

For scenarios with Trellis charts , increase JVM heap size to 8GB (-xmx8192M ) <ias-component id="coreapplication_obijh1"> <data id="start-args" value="-server -Xms2048M -Xmx8192M "

29

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Javahost clustering
Clustering Javahosts can help scalability

Use EM to increase the number of instances of Javahost

30

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIS - Init Blocks
Repository init-blocks : Called once during

server startup and refreshed after the refresh interval as needed


Session init-blocks: called for each new

session; slow SQL can slow down login


Session init-blocks should be minimized

and lazily loaded (deferred)


Previously it was not possible to defer row-

wise init-blocks ; restriction has been lifted in 11.1.1.6


Init-blocks should be associated with its

separate connection pool to reduce contention


Ensure enough connections are available

31

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Currently BI does not support issuing SQLs with bind variables to the database
May result in high parse time in the database specially for very complex Queries

OBIS using Bind Variables

Work around: Add inititalization code in connection setting to change session parameter for

cursor_sharing (Oracle only)


In the Execute on connect section,

click New and add:


alter session set cursor_sharing='FORCE';

In the Execute on disconnect section,

click New and add:


alter session set cursor_sharing='EXACT';

32

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIS Log Analysis for Performance Tuning
OBIS Query Loglevel
Loglevel 2 provided the logical query , physical

query and the response times


It has reasonable low overhead in low to

moderately busy system and can be kept at level 2 in production


Keep the log file in RAMDISK to reduce the IO

overhead
Needs rpd access to change
Work-around: Have a session init-block defined

and read the value from a DB table

33

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIS Log Analysis for Performance Tuning (contd)
Inspecting query log

Provides the physical datasource name


[username:ADMINISTRATOR] --- Sending query to database named FSCM_OLTP (id: <<966402>>), connection pool

Query Status
Query Status: Successful Completion

Row Count from the database


[username:Administrator] --- Execution Node: <<27109>> DbGateway Exchange, Close Row Count = 1, Row Width = 10 bytes

Physical SQL response time


[username:ADMINISTRATOR] ----- Physical query response time 5 (seconds), id SQLBypass Gateway

Mapping a slow Query in database to a logical query in BI (11.1.1.6+)


BI physical query will add a hash as a comment - /* 2c16620a */ select T2005.Country as c BI Query log will have the corresponding hash
-------------------- SQL Request, logical request hash: fdc49e9c Sending query to database named FSCM_OLTP (id: <<1712462>>), connection pool named Connection Pool, logical request hash fdc49e9c, physical request hash 2c16620a: [[

34

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Monitoring
WLS Console
# of sessions (/analytics) in WLS

EM (Enterprise manager)
Sessions, requests/setc for WLS, OBIPS, OBIS & Javahost

OBIPS perfmon page


http://<hostname>:<port>/analytics/saw.dll?perfmon

BIEE AdminTool
Manage-Sessions: # of sessions, current request and session variables

35

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Monitoring WLS Console

Exalytics

36

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Monitoring EM (Enterprise manager)

Exalytics

37

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics

Monitoring - OBIPS perfmon page /analytics/saw.dll?perfmon

38

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Monitoring AdminTool - Sessions

Exalytics

39

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Configuration changes for Load testing scripts
OBIPS Cursor Wait Time

There are two parameters that control how long OBI PS should wait before replying refreshing page to the browser. NewCursorWaitSeconds is the time to wait on the initial callback from the UI for a query to finish. OldCursor is for subsequent call backs for the query to finish. It is helpful to increase the NewCursorWaitSecons for performance load testing, so the load test scripts wont error out because of not seeing the expected results
<Cursors> <NewCursorWaitSeconds>1000</NewCursorWaitSeconds> <OldCursorWaitSeconds> 1000</OldCursorWaitSeconds> </Cursors>

40

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

EXALYTICS CONSIDERATIONS
41 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics Version Stripe


Core components optimized, tested together

Exalytics V1 Exalytics PS1

42

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIEE Performance acceleration for Analytic Queries
Technique Expected Performance Improvement Considerations

Cached result set

Consistently sub-second

For relatively static dashboard Pre-seeding cache, use IBOTs Purge cache on source data changes Use RAMDisk for storing the cache Aggregate Persistence for aggregate creation Summary Advisor for aggregate recommendation Build high-level KPIs with summary level performance and exception monitoring to tell a story Just raw data reports have no competitive advantage. OBIEE advantage is in multi-pass calculations, indexing, comparisons Drill-down reports via Action Links to root cause analysis Sizing and future data growth. Freeing up DB resources, in turn benefits other queries

Aggregate based acceleration

Depends on row count reduction

Moving data into TimesTen Orders of magnitude faster depending on the queries and the reference database

43

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
BI Server TimesTen Connection Architecture
BI Server
TimesTen client driver
client/server connections within the same host (shared memory IPC)

Server daemon

Server
proxies

Admin/Utility programs

TimesTen database is supported

TimesTen In-Memory Database

Data Store subdaemon(s) Checkpoint files

Transaction Log files

data source BI Server connects to TimesTen v11 database using TT specific ODBC 3.5

44

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Modeling Function Shipping
Make sure the DB type is set

accurately.
Typically more recent DB version will

support a wider range of functions.

BI Server internal execution


Any function not supported by data

source
Common Performance issue: Using such function in filters derived columns used in filters

45

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Physical and Logical Joins

Use foreign key joins wherever possible Complex joins


Avoid Use simple equality joins

Set right cardinality ({0..1, 1, N} to {0..1, 1, N, Unknown}) important for join trimming

Outer joins

Logical level

Dimension preserving behavior

LTS source Mapping

For all other cases

Outer join conversion technique


Add dimension table row for N/a or Unknown records during ETL Replace Null foreign keys with the N/A value either during ETL or via IfNull expressions in the RPD

46

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Level Keys
defines the unique elements in each

logical level
Portland (ME), Portland (OR) are distinct Basis of dimensional conformance across

sources
Use unique, single column level keys

whenever possible
Do not use derived columns Consider LTS expression

47

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
OBIEE - Descriptor ID columns
Use Descriptor ID Columns,
Answers Filters / Dashboard Prompts on

description
Database filters in terms of Key Columns Index / Partition pruning friendly SQL
SELECT

0 s_0, "Airlines Delay"."Carrier"."Carrier" s_1, DESCRIPTOR_IDOF( "Airlines Delay"."Carrier"."Carrier") s_2 FROM "Airlines Delay WHERE (DESCRIPTOR_IDOF( "Airlines Delay"."Carrier"."Carrier")='Q5') ORDER BY 1, 2 ASC NULLS LAST FETCH FIRST 100001 ROWS ONLY

48

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Model Checker
Runs in Online mode Detects artifacts that can cause correctness issues Uniqueness of level keys Uniqueness of physical table keys that prevent BI to recommend/create

aggregates
Session Variables in LTS expression Session Variables in LTS content filter Generates warning Attributes not mapped to levels (impact on

aggregate navigation)

49

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

AGGREGATES
50 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Aggregate Persistence

Ability to generate aggregate tables based on logical star and map back to the metadata repository Wizard to allow the administrator to identify measures and grains for aggregate tables

Output is a set of scripts to create and populate aggregate tables, as well as automatically map sources to the rpd

51

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Aggregate Generation Script
create aggregates "ag_4183394923 (aggregate name) for "Airlines"."Flight Facts (logical fact table) ("Actual Elapsed Time (Min)","Air Time (Min)","Arr Lag (Min)",...) (measures)

at levels
("Airlines"."00 Time"."Time Year", "Airlines"."18 Route"."18 Route Detail", "Airlines"."11 Orig Airport Map"."11 Orig Division Map") (grain level combination)

using connection pool "Aggregates (TT)"."Connection Pool" (connection pool)


in "Aggregates (TT)".."AIRLINES"; (schema)

52

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Summary Advisor
Analyzes query workload over time Usage Tracking Summary Statistics table Cache hits are ignored. Recommends minimal set of aggregates to

improve query response for the overall system.


Does not actually create aggregates, but

outputs a script that is fed to the Aggregate Persistence engine.

53

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIEE - Summary Advisor
Analyze facts
Eliminate the ones not suitable for

aggregation
Few facts at a time

Analyze over specific time window

Accelerating Dashboard ?
Select logical facts accessed

54

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
OBIEE - Summary Advisor
Analyze facts frequently queried

Specify Aggregation Target


Oracle TimesTen

Workload sensitivity
Cumulative time because of lots of small queries or small number of time consuming queries May need to modify usage tracking tables manually to feed summary advisor right input
55 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Summary Advisor Stopping criteria

Default stopping criteria 0% Longer recommendation time Longer Aggregate build/refresh time

56

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Summary Advisor Execute Aggregate Advisor

57

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Summary Advisor
Update database statistics (Oracle) before running Summary Advisor Aggregate Recommendation depends on

Database response times


Hardware, Table sizes, Indexes, tuning etc

Workload
Subject area, dashboard

BI Server cache settings

Rerun Summary Advisor in case of changes in the factors

No recommendation

Acceleration by aggregation unlikely


Reporting at the detailed grain

Reporting at the existing aggregate grain

58

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Aggregate Navigation - Chronological keys
AGO/TODATE functions will be navigated to the

detail source for lack of ordering information, even when the aggregates are available
(Quarter, Sales) will hit the aggregates at

the month grain,


(Quarter, PeriodAgoSales) will not.

Specify Chronological keys for upper levels along

Time dimensions

59

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Aggregate Navigation Measures w/ Dimension Specific Aggregation

E.g. Inventory measure, Account Balance etc.

Order of Aggregation is important for correct result


For a given query grain, matching aggregate should honor the order. Consider two LTS
1. 2.

Aggregate LTS: (city, month) Detailed LTS: (store, day)

Consider two queries


1. 2.

Query1: (city, year) grain Query2: (state, month) grain


Only query 1 can leverage Aggregate

Country<-Region<-State<-City<-Store Year<-Quarter<-Month<-Day

Data is dense permits reordering of aggregation


Review the source data before setting Both queries will leverage aggregate.

60

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE
Aggregate Navigation Measures w/ Distinct Count aggregation
Count distinct aggregation

BI Server uses the most detailed grain possible Unless you register additional LTSes explicitly

Aggregate Persistence

Creates aggregates with the counts Not reusable except for Exact match with query grain

Consider expressing Distinct Count measure

as expression, referencing logical columns

Summary Advisor can recommend suitable aggregates

61

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Aggregates other considerations
Aggregates on a different target ?

VPD enabled database


Source specific SQL [Evaluate function]

Security implemented in LTS content filter


Consider expressing security in terms of BI logical columns, replace with BI security filter. Consider Role based security

LTS expressions:

Space - Performance tradeoff

More columns in aggregate table compared to base fact [ physical tables in the database]
Aggregate build/refresh longer, query performance faster

62

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

TIMESTEN
63 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
TimesTen Data mart
Move Select Detail Data into TimesTen
Use ODI to replicate from warehouse tables Use GoldenGate to replicate for Operational reporting Use ttBulkCp utility to load from text file Data volume considerations
TimesTen in-memory database

Space for data (PermSize) 400 GB Space for query processing (TempSize) 400 GB

Use Columnar Compression to reduce the space requirement


Trim column sizes (Currency VARCHAR 15 VARCHAR 3) Replicate only query columns

Summary Advisor can be used against detailed TimesTen tables as well.

64

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
TimesTen Optimizing using native Data types
TimesTen implements native numeric types
more efficient in query processing and improved space usage

BI Server automatically maps the BI NQS data types to TimesTen native data

types
INT maps to TT_INTEGER, DOUBLE maps to BINARY_DOUBLE etc.

Consider optimal data type mapping for replication to TT


NUMBER without precision takes 22 bytes of storage

NUMBER (Max < 28) should be of type TT_TINYINT (1 Byte) NUMBER (Max < 215) should be of type TT_SMALLINT (2 Bytes)

NUMBER (Max < 231) should be of type TT_INTEGER (4 Bytes)

65

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
TimesTen database tuning
Data load:

Disable Redo log and use fuzzy checkpoints for faster load

Maintain up to date database statistics


Exact statistics: Use the ttOptUpdateStats built-in procedure Statistical sampling: Use the ttOptEstimateStats built-in procedure

Indexing

Necessary for good query performance BI Server currently creates single-column indexes for aggregates stored in TimesTen Multi-column composite indexes can provide significant improvements for complex queries In case of replication, use the indexes on source table as reference Use TimesTen Index Advisor for recommendation on indexes, for specific SQL queries/workload (nqquery.log)

66

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
TimesTen database maintenance
ttBackup creates a backup copy of a database that can be restored using the

ttRestore utility
Full backup and incremental backup

ttBackup and ttRestore should be used to replicate across TimesTen instances

for HA/DR

67

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

ESSBASE
68 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
ESSBASE Block Storage - all things Parallel
Parallel Data Load
import database Sample.Basic using max_threads 12

Parallel Dense Restructure


Set RESTRUCTURETHREADS in essbase.cfg for parallelism

Parallel Export
PAREXPORT -threads 4 -in e:\data\input.txt 1 1;
Default number of threads is specified using EXPORTTHREADS in essbase.cfg

Parallel Calculation in calculation scripts

Set CALCPARALLEL in essbase.cfg for parallelism and also set CALCTASKDIMS for the sparse dimensions to be included in parallel tasks

69

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
ESSBASE Block Storage - considerations
Multiple user concurrent queries and calculation script execution
Design the application to allow for large degree of parallelism in queries and calculation script

execution.

Consolidation of Applications into single Exalytics box


Exalytics has 4 sockets, 40 cores and large amount of memory and this allows us to consolidate

number of Essbase applications in different machines into a single box leading to efficient management.

Set Socket Affinity for Each Application


During consolidation, explicitly set the affinity to group of applications to a single socket so as to

efficiently utilize the memory associated with that socket.

Increase the memory foot print of index and block cache to take advantage of

in-memory calculation efficiencies


70 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
ESSBASE Aggregate Storage - considerations
ASO scales linearly with the number of cores and memory

Configure the ASO application to run on the entire box and assign as much memory and threads as possible using essbase.cfg settings

Consolidation of Multiple ASO Applications into single Exalytics box

Exalytics has 4 sockets, 40 cores and large amount of memory and this allows us to consolidate number of Essbase ASO applications in different machines into a single box leading to efficient management.

Set Socket Affinity for Each Application

During consolidation, explicitly set the affinity to group of applications to a single socket so as to efficiently utilize
the memory associated with that socket.

Consolidate multiple cubes into a single large cube in Exalytics box

A large single cube is possible with the memory and CPU power of Exalytics and this avoids having to consolidate the results from multiple cubes and re-aggregating and collating externally.

71

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Ask us about this special offer..


Analytics in a Box
Complete solution for Business Analytics
Pre-packaged hardware, software,

implementation, and support


Per User Per Month (PUPM)

promotional pricing
Contact your Sales Consultant today to learn more.

72

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Graphic Section Divider

73

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

74

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

75

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Exalytics
Tip 3: HardwareAccelarator flag

New flag HardwareAccelarator for Exalytics


OBIPS (instanceconfig.xml)

<OracleHardwareAcceleration>true</OracleHardwareAcceleration>
OBIS (NQConfig.INI)

ORACLEHARDWAREACCELERATION = YES

76

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

OBIEE Architecture

77

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Вам также может понравиться