Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Events
Videos
Audiobooks
Packt Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Oracle Database 11gR2 Performance Tuning Cookbook

You're reading from   Oracle Database 11gR2 Performance Tuning Cookbook Shifting your Oracle Database into top gear takes a lot of know-how and fine-tuning ability. The 80+ recipes in this Cookbook will give you those skills along with the ability to troubleshoot if things starts running slowly.

Arrow left icon
Product type Paperback
Published in Jan 2012
Publisher Packt
ISBN-13 9781849682602
Length 542 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Ciro Fiorillo Ciro Fiorillo
Author Profile Icon Ciro Fiorillo
Ciro Fiorillo
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Preface 1. Starting with Performance Tuning FREE CHAPTER 2. Optimizing Application Design 3. Optimizing Storage Structures 4. Optimizing SQL Code 5. Optimizing Sort Operations 6. Optimizing PL/SQL Code 7. Improving the Oracle Optimizer 8. Other Optimizations 9. Tuning Memory 10. Tuning I/O 11. Tuning Contention A. Dynamic Performance Views B. A Summary of Oracle Packages Used for Performance Tuning Index

Taking advantage of function result cache


In this recipe, we will see how to use the function result cache feature, available from Oracle 11g upwards, to enhance our function's performance.

How to do it...

The following steps will demonstrate the use of the functions result cache:

  1. Connect to the SH schema:

    CONNECT sh@TESTDB/sh
    
  2. Create the function C_N_K, which calculates the number of k-combinations in a set of n elements:

    CREATE OR REPLACE FUNCTION C_N_K (N IN NUMBER, K IN NUMBER)
      RETURN NUMBER
    IS
      N_FAT NUMBER := 1;
      K_FAT NUMBER := 1;
      N_K_FAT NUMBER := 1;
    BEGIN
      FOR J IN 1..N LOOP
        N_FAT := N_FAT * J;
      END LOOP;
      FOR J IN 1..K LOOP
        K_FAT := K_FAT * J;
      END LOOP;
      FOR J IN 1..(N - K) LOOP
        N_K_FAT := N_K_FAT * J;
      END LOOP;
      RETURN (N_FAT / (N_K_FAT * K_FAT));
    END;
    /
    
  3. Create a procedure with the name STRESS to test the function in a loop:

    CREATE OR REPLACE PROCEDURE STRESS(ANUM NUMBER)
    IS
      AVAL NUMBER;
    BEGIN
      FOR J IN 1..ANUM LOOP
        AVAL := C_N_K (50,10);
      END LOOP...
lock icon The rest of the chapter is locked
CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Oracle Database 11gR2 Performance Tuning Cookbook
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime
Modal Close icon
Modal Close icon