BC remote Oracle DBA - Call (800) 766-1884  
Oracle Consulting Oracle Training Development

Remote DBA

Remote DBA Plans  

Remote DBA Service

Remote DBA RAC

   
Remote DBA Oracle Home
Remote DBA Oracle Training
Remote DBA SQL Tuning Consulting
Remote DBA Oracle Tuning Consulting
Remote DBA Data Warehouse Consulting
Remote DBA Oracle Project Management
Remote DBA Oracle Security Assessment
Remote DBA Unix Consulting
Burleson Books
Burleson Articles
Burleson Web Courses
Burleson Qualifications
Oracle Links
Remote DBA Oracle Monitoring
Remote DBA Support Benefits
Remote DBA Plans & Prices
Our Automation Strategy
What We Monitor
Oracle Apps Support
Print Our Brochure
Contact Us (e-mail)
Oracle Job Opportunities
Oracle Consulting Prices





   

 

 

 

Remote DBA services

Remote DBA Support

Remote DBA RAC

Remote DBA Reasons

Remote Oracle Tuning

Remote DBA Links

Oracle DBA Support

Oracle DBA Forum

Oracle Disaster

Oracle Training

Oracle Tuning

Oracle Training

 Remote DBA SQL Server

Remote MSSQL Consulting

Oracle DBA Hosting

Oracle License Negotiation

 

 


 

 

 

 

 

 

 

The Steps to Oracle SQL Tuning

Oracle Tips by Burleson Consulting

Tuning individual SQL statements is one of the most time consuming and challenging areas of Oracle tuning. SQL tuning can also be quite tedious because of the complexity of some SQL statements, and a complex SQL statement can often take many hours to tune.

If your database has thousands of complex SQL statements, this tuning can take many months. At a high level, Oracle SQL tuning involves the following activities:

  1. Ensure that all prerequisite tuning has been done on the server, disk, network, instance, and tables.
  2. Rank the SQL statements in your library cache to identify the statements that will result in the most benefit from SQL tuning (i.e., those with the highest number of executions).
  3. Tune the SQL statement by adding hints, rewriting the query, or adding or changing indexes.
  4. Make the SQL execution plan persistent by updating the SQL source code, or by using optimizer plan stability.
  5. Repeat steps 2 through 4 until all SQL has been located and tuned.

There is some debate about when SQL tuning should be performed. Some experts believe that SQL tuning can be conducted first, before the server, disk, network, instance, and objects are tuned. In fact, this sequence is tested in the Oracle Certified Professional (OCP) exam. However, you must remember that there are dependencies between a SQL statement and its environment. With regards to the external environment, bottlenecks at the server disk or network level can skew the performance of SQL executions, thereby making it very difficult to tune the statement. The same issue applies to instance tuning. If we have not tuned the instance, resetting Oracle initialization parameters could undo the execution plans for SQL that has already been tuned. For example, changing the value of db_file_multiblock_read_count could change the behavior of the CBO, causing hundreds of SQL statements to change their execution plans.

Goals of SQL Tuning

Oracle SQL tuning is a phenomenally complex subject, and entire books have been devoted to the nuances of Oracle SQL tuning. However there are some general guidelines that every Oracle Remote DBA follows in order to improve the performance of their systems. The goals of SQL tuning are simple:

  • Remove unnecessary large-table full-table scans  Unnecessary full-table scans cause a huge amount of unnecessary I/O and can drag down an entire database. The tuning expert first evaluates the SQL in terms of the number of rows returned by the query. If the query returns less than 40 percent of the table rows in a row-resequenced table, or 7 percent of the rows in an unordered table, the query can be tuned to use an index in lieu of the full-table scan. The most common tuning for unnecessary full-table scans is adding indexes. Standard B-tree indexes can be added to tables, and bitmapped and function-based indexes can also eliminate full-table scans. The decision about removing a full-table scan should be based on a careful examination of the I/O costs of the index scan versus the costs of the full-table scan, factoring in the multi-block reads and possible parallel execution. In some cases an unnecessary full-table scan can be forced to use an index by adding an index hint to the SQL

  • Cache small-table full-table scans  In cases where a full-table scan is the fastest access method, the tuning professional should ensure that a dedicated data buffer is available for the rows. In Oracle7, you can issue cache commands, and in Oracle8 and beyond, the small table can be cached by forcing it into the KEEP pool.

alter table xxx cache; -- Oracle7
alter table xxx storage (buffer_pool keep); -- Oracle8

  • Verify optimal index usage  This is especially important for improving the speed of queries. Oracle sometimes has a choice of indexes, and the tuning professional must examine each index and ensure that Oracle is using the proper index. This also includes the use of bitmapped and function-based indexes.

  • Verify optimal JOIN techniques  Some queries will perform faster with NESTED LOOP joins, others with HASH joins, and others with MERGE or STAR joins.

  • Review Subqueries  Every correlated and non-correlated subquery should be examined to determine if the SQL query could be rewritten as a simple table join.

These goals may seem deceptively simple, but these tasks compose 90 percent of SQL tuning, and they don’t require a through understanding of the internals of Oracle SQL.

Now that you understand the goals of SQL tuning, let’s take a look at the steps of tuning. We will revisit many of these steps in detail in later chapters, but for now you need to understand the basic steps.


This is an excerpt from "Oracle High-Performance SQL Tuning" by Donald K. Burleson, published by Oracle Press.


Expert Remote DBA

BC is America's oldest and largest Remote DBA Oracle support provider.  Get real Remote DBA experts, call
BC Remote DBA today.

 

 

Remote DBA Service
 

Oracle Tuning Book

 

Advance SQL Tuning Book 

BC Oracle support

Oracle books by Rampant

Oracle monitoring software

 

 

 

 

 

 

BC Remote Oracle Support

Remote DBA

Remote DBA Services

Copyright © 1996 -  2013 by Burleson. All rights reserved.

Oracle® is the registered trademark of Oracle Corporation.



Hit Counter