Book Image

Oracle Database 11gR2 Performance Tuning Cookbook

By : Ciro Fiorillo
Book Image

Oracle Database 11gR2 Performance Tuning Cookbook

By: Ciro Fiorillo

Overview of this book

Oracle's Database offers great performance, scalability, and many features for DBAs and developers. Due to a wide choice of technologies, successful applications are good candidates to run into performance issues and when a problem arises it's very difficult to identify the cause and the right solution to the problem. The Oracle Database 11g R2 Performance Tuning Cookbook helps DBAs and developers to understand every aspect of Oracle Database that can affect performance. You will be guided through implementing the correct solution in a proactive way before problems arise, and how to diagnose issues on your Oracle database-based solutions. This fast-paced book offers solutions starting from application design and development, through the implementation of well-performing applications, to the details of deployment and delivering best-performance databases. With this book you will quickly learn to apply the right methodology to tune the performance of an Oracle Database, and to optimize application design and SQL and PL/SQL code. By following the real-world examples you will see how to store your data in correct structures and access and manipulate them at a lightning speed. You will learn to speed up sort operations, hack the optimizer and the data loading process, and diagnose and tune memory, I/O, and contention issues. The purpose of this cookbook is to provide concise recipes, which will help you to build and maintain a very high-speed Oracle Database environment.
Table of Contents (21 chapters)
Oracle Database 11gR2 Performance Tuning Cookbook
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
Index

Sorting and indexing


We have seen various aspects of indexing in Chapter 3, Optimizing Storage Structures. In this recipe, we will focus on how to use indexes to avoid sort operations.

How to do it...

The following steps will demonstrate how to use indexes and avoid sorts:

  1. Connect to the SH schema:

    CONNECT sh@TESTDB/sh
    
  2. Execute an ORDER BY query:

    SET AUTOT TRACE EXP STAT
    SELECT CUST_FIRST_NAME, CUST_LAST_NAME, CUST_CITY
    FROM CUSTOMERS
    ORDER BY CUST_CITY;
    
  3. Execute a SELECT DISTINCT query:

    SET AUTOT TRACE EXP STAT
    SELECT DISTINCT CUST_CITY FROM CUSTOMERS;
    
  4. Execute a GROUP BY query:

    SET AUTOT TRACE EXP STAT
    SELECT CUST_CITY, COUNT(*)
    FROM CUSTOMERS
    GROUP BY CUST_CITY;
    
  5. Add an index on the CUSTOMERS table:

    CREATE INDEX IX_CUST_CITY ON CUSTOMERS(
      CUST_CITY, CUST_LAST_NAME, CUST_FIRST_NAME);
    
  6. Execute an ORDER BY query (the same query as in step 2):

    SET AUTOT TRACE EXP STAT
    SELECT CUST_FIRST_NAME, CUST_LAST_NAME, CUST_CITY
    FROM CUSTOMERS
    ORDER BY CUST_CITY;
    
  7. Execute a SELECT DISTINCT query (the same...