Reader small image

You're reading from  Oracle Database 11gR2 Performance Tuning Cookbook

Product typeBook
Published inJan 2012
Reading LevelIntermediate
PublisherPackt
ISBN-139781849682602
Edition1st Edition
Languages
Right arrow
Author (1)
Ciro Fiorillo
Ciro Fiorillo
author image
Ciro Fiorillo

Ciro Fiorillo is an IT professional and consultant with experience of more than a decade in different roles (developer, analyst, DBA, project manager, data and software architect) among software industries. He has worked on different technologies and architectures, such as Oracle, SQL Server, Delphi, C# and .NET Framework, C/C++, Java, PHP, COBOL, Fortran, and Tibco. Ciro is currently employed as Lead Software and Data Architect with FinWin Srl, a software house specializing in banking and loans applications. As a freelancer he writes articles for websites and printed magazines about software and computing, participates in workshops, and teaches C++ and Fortran parallel programming with Intel Software tools. Ciro can be reached at ciro@cirofiorillo.com.
Read more about Ciro Fiorillo

Right arrow

Using reverse key indexes


In this recipe, we will introduce reverse key indexes. We will look at when to use them and how they are related to performance.

How to do it...

The following steps will demonstrate reverse keys:

  1. Connect to SQL*Plus as user SH:

    CONNECT sh@TESTDB/sh
    
  2. Create a simple table:

    CREATE TABLE REVERSE_TEST (
      ID NUMBER NOT NULL,
      NAME VARCHAR(100)
    );
    
  3. Create a sequence to generate the IDs for the table:

    CREATE SEQUENCE REV_SEQ
      START WITH 1 INCREMENT BY 1 CACHE 1000;
    
  4. Create the trigger to insert sequence-generate values:

    CREATE OR REPLACE TRIGGER TR_REVERSE_TEST_INS
      BEFORE INSERT ON REVERSE_TEST FOR EACH ROW
      WHEN (NEW.ID IS NULL)
    BEGIN
      SELECT REV_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    
  5. Create a UNIQUE INDEX on ID:

    CREATE UNIQUE INDEX PK_REVERSE_TEST ON REVERSE_TEST(ID);
    
  6. Populate the table:

    INSERT INTO REVERSE_TEST (NAME)
      SELECT CUST_LAST_NAME || CUST_FIRST_NAME FROM CUSTOMERS;
    COMMIT;
    
  7. Analyze the index:

    ANALYZE INDEX PK_REVERSE_TEST VALIDATE STRUCTURE;
    
  8. Query the...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Oracle Database 11gR2 Performance Tuning Cookbook
Published in: Jan 2012Publisher: PacktISBN-13: 9781849682602

Author (1)

author image
Ciro Fiorillo

Ciro Fiorillo is an IT professional and consultant with experience of more than a decade in different roles (developer, analyst, DBA, project manager, data and software architect) among software industries. He has worked on different technologies and architectures, such as Oracle, SQL Server, Delphi, C# and .NET Framework, C/C++, Java, PHP, COBOL, Fortran, and Tibco. Ciro is currently employed as Lead Software and Data Architect with FinWin Srl, a software house specializing in banking and loans applications. As a freelancer he writes articles for websites and printed magazines about software and computing, participates in workshops, and teaches C++ and Fortran parallel programming with Intel Software tools. Ciro can be reached at ciro@cirofiorillo.com.
Read more about Ciro Fiorillo