You are on page 1of 12

Performance Increasing In OBIEE While working on OBIEE every one need some tips to increase performance, I searched the

net but not found helpful tips. Hence I thought putting some of the points together that will be helpful for you. Following are the few points which improve the performance of OBIEE.
. #. &. (. *. ,. ..

!lias "ables $sing !ggregate %avigation $sing 'ache 'onnection )ool "urning Off +og +evel $sing -atabase Hints $sing Where 'lause

1.) Alias Tables !n !lias table /!lias0 is a physical table with the type of !lias. It is a reference to a )hysical table, and inherits all its column definitions and some properties from the )hysical table. !lias "ables can be an important part of designing a physical layer OBIEE doesn1t support the self23oin, so we can use alias table to implement self23oin in OBIEE. The following is a list of the main reasons to create an alias table: "o reuse an e4isting table more than once in your physical layer /without having to import it several times0 "o set up multiple alias tables, each with different keys, names, or 3oins "o help you design sophisticated star or snowflake structures in the business model layer.

"o create !lias table in )hysical +ayer, right click on "able ! %ew Ob3ect 25 !lias, select source table if re6uired.

"OTE: In previous version we need to synchroni7e the alias table with the source tables but in OBIEE !lias will be automatically synchroni7ed with source table, any change to 8ource "able will be immediately reflected in !lias "able. #.) $sing Aggregate Tables !ll knows that when we create 8ummary 9eport then data from the fact table got roll up to the appropriate level : then showed to the customer. Oracle BI server lets you register aggregate /summary0 tables that contain the pre2computed sums, averages and so on for a fact table, which it then uses in preference to rolling up the detail2level fact table if this would speed up a 6uery. We will be using aggregate tables in physical layer if you re6uired to create the aggregate tables then you can use !ggregate )ersistent Wi7ard. We will import aggregate ;act : -imension "able into physical layer..

We have the aggregate tables in physical layer< will use physical -iagram to create foreign key relationships between the aggregate fact tables, the aggregate dimension tables

We1re now at the point where we can map these aggregate tables to the e4isting logical tables in the business model layer We need to identify the e4isting logical tables in the business model that have columns that correspond to the incoming data, and then drag the columns you want to match on over from the new, physical table. We will create new +ogical "able 8ource to map +ogical 'olumn to )hysical 'olumns /from !ggregate table0.

"he final step is to tell the BI 8erver that this new data source for the units measure, is only valid =onth, 8ales 9ep and "ype +evel.

%ow, when a 6uery comes in against the -ollars measure at the product "ype or 'ustomer 8ales rep +evel, the BI 8erver will use the - >O9-E9>!?? table instead of - >O9-E9#. %.) $sing &ache: &ache in OBIEE: 'ache is component hat improves performance by transparently storing data such that future re6uests for that data can be served faster. +ike other application cache is not virtual memory in OBIEE. In OBIEE cache will be stored as file on Hard -isk in the form of files. "o use the cache we need to enable it, to enable cache we need to edit the %@8'onfig.ini as well as need to make the tables cacheable. Following are the parameters from "'(&onfig.ini that will be )se* in enabling the cache: E"AB+E "o enable the cache set the E%!B+E parameter to AE8. ,ATA-(TO.A/E-PAT0( "his parameter specifies one or more directory paths for where the cached 6uery results data is stored and are accessed when a cache hit occurs. "he ma4imum capacity in bytes, kilobytes, megabytes or gigabytes. "he ma4imum capacity for each path is ( ?B. ;or optimal performance, the directories specified should be on high performance storage systems. Each directory listed needs to be an e4isting, fully26ualified, writable directory pathname, with double 6uotes / B 0 surrounding the pathname. 8pecify mapped directories only. $%' path names /CDserver.name.edusomefolderC0 and network mapped drives are allowed only if the service runs under a 6ualified user account. "o change the account under which the service is running, see the corresponding topic in the Oracle Business Intelligence Enterprise Edition -eployment ?uide. 8pecify multiple directories with a comma separated list. 1A2-.O3(-PE.-&A&0E-E"T.4 8pecifies the ma4imum number of rows in a 6uery result set to 6ualify for storage in the 6uery cache. +imiting the number of rows is a useful way to avoid using up the cache space with runaway 6ueries that return large numbers of rows. If the number of rows a 6uery returns is greater than the value specified in the =!E>9OW8>)E9>'!'HE>E%"9A parameter, the 6uery is not cached. When set to F, there is no limit to the number of rows per cache entry. 1A2-&A&0E-E"T.4-(I5E 8pecifies the ma4imum si7e for a cache entry. )otential entries that e4ceed this si7e are not cached. "he default si7e is =B. 8pecify ?B for gigabytes, GB for kilobytes, =B for megabytes, and no units for bytes. 1A2-&A&0E-E"T.IE( 8pecifies the ma4imum number of cache entries allowed in the 6uery cache. +imiting the total number of cache entries provides another parameter with which to manage your cache storage. "he actual limit of cache entries might vary slightly depending on the number of concurrent 6ueries. OP$+ATE-A//.E/ATE-.O++$P-0IT( 8pecifies whether to aggregate data from an earlier cached 6uery result set and create a new

entry in the 6uery cache for rollup cache hits. (E-A,6A"&E,-0IT-,ETE&TIO" When caching is enabled, each 6uery is evaluated to determine whether it 6ualifies for a cache hit. ! cache hit means that the server was able to use cache to answer the 6uery and did not go to the database at all. "he Oracle BI 8erver can use 6uery cache to answer 6ueries at the same or later level of aggregation.

Following are the parameters )se* to ma7e Table &acheable: "o make table cacheable we need to edit the table properties.

&acheable "o include the table in the Oracle BI 8erver 6uery cache, select this check bo4. When you select this check bo4, the 'ache persistence time settings become active. &ache never e8pires When you select this option, cache entries do not e4pire. "his could be useful when a table will be important to a large number of 6ueries users might run. ;or e4ample, if most of your 6ueries have a reference to an account ob3ect, keeping it cached indefinitely could actually improve performance rather than compromise it &ache persistence time How long table entries should persist in the 6uery cache. "he default value is Infinite, meaning that cache entries do not automatically e4pire. However, this does not mean that an entry will always remain in the cache. Other invalidation techni6ues, such as manual purging, +9$ /+east 9ecently $sed0 replacement, metadata changes, and use of the cache polling table, result in entries being removed from the cache. If a 6uery references multiple physical tables with different persistence times, the cache entry for the 6uery will e4ist for the shortest persistence time set for any of the tables referenced in the 6uery. "his makes sure that no subse6uent 6uery gets a cache hit from an e4pired cache entry. 9.) &onnection Pool:

=ost of the times not much thought are given to defining connection pools while developing 9)-. Improperly defined connection pool would affect the OBIEE performance and user e4perience. Here are some of the things to consider while defining connection pool. 'hange the default ma4imum connections. "he default is F. Based on your system usage change the value that is more realistic to your system usage 'reate a separate connection pool for e4ecution of session variables 'reate a separate connection pool for the e4ecution of aggregate persistence wi7ard. 9emember that you need to give the schema user owner credentials for this connection pool as the wi7ard creates and drops tables If need be create a separate connection pool for HHI)s. Aou can control who gets to use the connection pool based on the connection pool permissions.

:.) T)rning Off +og +evel: "hough 6uery logging has immeasurable development value, do not use this for regular production users as the runtime logging cost is e4tremely high. Every log item is flushed to the disk, which in turn hurts 6uery response. !lso, note that the 6uery log files are not created on per user or 6uery basis, there is only one 6uery log per OBIEE server and it would have e4clusive

lock on the log file, which kills concurrent performance. "he log file is %@@uery.log which resides in OracleBI -irectory. +ogging +evel +evel F +evel Information That Is +ogge* %o logging. +ogs the 8@+ statement issued from the client application. +ogs elapsed times for 6uery compilation, 6uery e4ecution, 6uery cache processing, and back2end database processing. +ogs the 6uery status /success, failure, termination, or timeout0. +ogs the user I-, session I-, and re6uest I- for each 6uery. +evel # +ogs everything logged in +evel . !dditionally, for each 6uery, logs the repository name, business model name, presentation catalog /called 8ub3ect !rea in !nswers0 name, 8@+ for the 6ueries issued against physical databases, 6ueries issued against the cache, number of rows returned from each 6uery against a physical database and from 6ueries issued against the cache, and the number of rows returned to the client application. +evel & +ogs everything logged in +evel #. !dditionally, adds a log entry for the logical 6uery plan, when a 6uery that was supposed to seed the cache was not inserted into the cache, when e4isting cache entries are purged to make room for the current 6uery, and when the attempt to update the e4act match hit detector fails. -o not select this level without the assistance of "echnical 8upport. +evel ( +ogs everything logged in +evel &. !dditionally, logs the 6uery e4ecution plan. -o not select this level without the assistance of "echnical 8upport. +evel * +ogs everything logged in +evel (. !dditionally, logs intermediate row counts at various points in the e4ecution plan. -o not select this level without the assistance of "echnical 8upport. +evel , and . 9eserved for future use.

;.) $sing ,atabase 0ints

-atabase hints are instructions placed within a 8@+ statement that tell the database 6uery optimi7er the most efficient way to e4ecute the statement. Hints override the optimi7er1s e4ecution plan, so you can use hints to improve performance by forcing the optimi7er to use a more efficient plan. Hints are database specific. "he Oracle BI 8erver supports hints only for Oracle Ii, Ji, and Fg servers. These are the following ob<ects where =o) can appl= the hint
. #. &. (.

)hysical 'omple4 Koin )hysical foreign key )hysical "able L Ob3ect type !lias )hysical "able L Ob3ect type %one

Hints that are well researched and planned can result in significantly better 6uery performance. However, hints can also negatively affect performance if they result in a suboptimal e4ecution plan. Aou should only add hints to a repository after you have tried to improve performance in the following waysM

!dded physical inde4es /or other physical changes0 to the Oracle database. =ade modeling changes within the server. !void creating hints for physical table and 3oin ob3ects that are 6ueried often.

To create a hint . %avigate to one of the following dialog bo4esM


)hysical "ableN?eneral tab )hysical ;oreign Gey )hysical KoinN'omple4 Koin "ype the te4t of the hint in the Hint field and click OG.

#.

>.) $sing 3here &la)se Filter "he WHE9E clause filter is used to constrain the physical tables referenced in the logical table source, If there are no constraints on the aggregate source, leave the WHE9E clause filter blank.

;ilter applied in WHE9E 'lause will applied on physical table that will be result in restricted or re6uired data, other data which is not necessary, will not be fetched each time when there is 6uery on that table.

You might also like