Thursday, April 7, 2016

How to achieve high performance using OBIEE

OBIEE Performance:

Reason for BI Projects Non-performance


• Poor Report Performance

• Using Analytical tool as reporting tool.
• No Data Quality Processes
• Has no reliable source of historical data
• Manual, Error-Prone Processes
• No Single Source of Truth for Data
• No Clear Road Map for BI Implementation
• Ignoring the True end users
• Lack of User Adoption due to poor user interface

Stage to decide on Performance


• Based on business Requirement and Need

• Not everything can run in matter of Seconds
• Performance should always be before presentation in term of priority.
• Sacrifices on presentation during the design of the project.
• Its always difficult to explain to users to give up the presentation because of performance.

Oracle FAQs - Part VI

ORACLE FREQUENTLY ASKED QUESTIONS - VI

What is PL/SQL? 
PL/SQL is a procedural language that has both interactive SQL and procedural programming language constructs such as iteration, conditional branching.

What are the components of OEM? (For DBA)
Oracle Enterprise Manager (OEM) has the following components:
. Management Server (OMS): Middle tier server that handles communication with the intelligent agents. The OEM Console connects to the management server to monitor and configure the Oracle enterprise.
. Console: This is a graphical interface from where one can schedule jobs, events, and monitor the database. The console can be opened from a Windows workstation, Unix XTerm (oemapp command) or Web browser session (oem_webstage).
. Intelligent Agent (OIA): The OIA runs on the target database and takes care of the execution of jobs and events scheduled through the Console.

What happens if a procedure that updates a column of table X is called in a database trigger of the same table? 
Mutation of table occurs.


Is it possible to use Transaction control Statements such a ROLLBACK or COMMIT in Database Trigger? Why? 
It is not possible. As triggers are defined for each table, if you use COMMIT of ROLLBACK in a trigger, it affects logical transaction processing.

Oracle FAQs - Part V

ORACLE FREQUENTLY ASKED QUESTIONS - V


When is cost based optimization triggered? (For DBA)
It's important to have statistics on all tables for the CBO (Cost Based Optimizer) to work correctly. If one table involved in a statement does not have statistics, Oracle has to revert to rule-based optimization for that statement. So you really want for all tables to have statistics right away; it won't help much to just have the larger tables analyzed.
Generally, the CBO can change the execution plan when you:
1. Change statistics of objects by doing an ANALYZE;
2. Change some initialization parameters (for example: hash_join_enabled, sort_area_size, db_file_multiblock_read_count).

How can one optimize %XYZ% queries? (For DBA)
It is possible to improve %XYZ% queries by forcing the optimizer to scan all the entries from the index instead of the table. This can be done by specifying hints. If the index is physically smaller than the table (which is usually the case) it will take less time to scan the entire index than to scan the entire table.

What Enter package procedure does? 
Enter Validate-data in the current validation unit.

Where can one find I/O statistics per table? (For DBA)
The UTLESTAT report shows I/O per tablespace but one cannot see what tables in the tablespace has the most I/O. The $ORACLE_HOME/rdbms/admin/catio.sql script creates a sample_io procedure and table to gather the required information. After executing the procedure, one can do a simple SELECT * FROM io_per_object; to extract the required information. For more details, look at the header comments in the $ORACLE_HOME/rdbms/admin/catio.sql script.
My query was fine last week and now it is slow. Why? (For DBA)
The likely cause of this is because the execution plan has changed. Generate a current explain plan of the offending query and compare it to a previous one that was taken when the query was performing well. Usually the previous plan is not available.
Some factors that can cause a plan to change are:
-          Which tables are currently analyzed? Were they previously analyzed? (i.e. was the query using RBO and now CBO?)
-          Has OPTIMIZER_MODE been changed in INIT.ORA?
-          Has the DEGREE of parallelism been defined/changed on any table?
-          Have the tables been re-analyzed? Were the tables analyzed using estimate or compute? If estimate, what percentage was used?
-          Have the statistics changed?
-          Has the INIT.ORA parameter DB_FILE_MULTIBLOCK_READ_COUNT been changed?
-          Has the INIT.ORA parameter SORT_AREA_SIZE been changed?
-          Have any other INIT.ORA parameters been changed?
-          What do you think the plan should be? Run the query with hints to see if this produces the required performance.
-           

Oracle FAQs - Part IV

ORACLE FREQUENTLY ASKED QUESTIONS - IV


List the Optional Flexible Architecture (OFA) of Oracle database? Or how can we organize the tablespaces in Oracle database to have maximum performance? 
SYSTEM - Data dictionary tables.
DATA - Standard operational tables.
DATA2- Static tables used for standard operations
INDEXES - Indexes for Standard operational tables.
INDEXES1 - Indexes of static tables used for standard operations.
TOOLS - Tools table.
TOOLS1 - Indexes for tools table.
RBS - Standard Operations Rollback Segments,
RBS1, RBS2 - Additional/Special Rollback segments.
TEMP - Temporary purpose tablespace
TEMP_USER - Temporary tablespace for users.
USERS - User tablespace.

How to implement the multiple control files for an existing database? 
Shutdown the database, Copy one of the existing control file to new location, Edit Config ora file by adding new control file name, Restart the database.

What is advantage of having disk shadowing/ Mirroring? 
Shadow set of disks save as a backup in the event of disk failure. In most Operating System if any disk failure occurs it automatically switchover to place of failed disk. Improved performance because most OS support volume shadowing can direct file I/O request to use the shadow set of files instead of the main set of files. This reduces I/O load on the main set of disks.

How will you force database to use particular rollback segment? 
SET TRANSACTION USE ROLLBACK SEGMENT rbs_name.
Why query fails sometimes? 
Rollback segment dynamically extent to handle larger transactions entry loads. A single transaction may wipeout all available free space in the Rollback Segment Tablespace. This prevents other user using Rollback segments.

What is the use of RECORD LENGTH option in EXP command? 
Record length in bytes.