Cost-Based Oracle Fundamentals / Edition 1

Paperback (Print)
Buy New
Buy New from BN.com
$31.49
Used and New from Other Sellers
Used and New from Other Sellers
from $2.65
Usually ships in 1-2 business days
(Save 94%)
Other sellers (Paperback)
  • All (18) from $2.65   
  • New (11) from $27.2   
  • Used (7) from $2.65   

Overview

The question, "Why isn’t Oracle using my index?" must be one of the most popular (or perhaps unpopular) questions ever asked on the Oracle help forums. You’ve picked exactly the right columns, you’ve got them in the ideal order, you’ve computed statistics, you’ve checked for null columns—and the optimizer flatly refuses to use your index unless you hint it. What could possibly be going wrong?

If you’ve suffered the frustration of watching the optimizer do something completely bizarre when the best execution plan is totally obvious, or spent hours or days trying to make the optimizer do what you want it to do, then this is the book you need. You’ll come to know how the optimizer thinks, understand why it makes mistakes, and recognize the data patterns that make it go awry. With this information at your fingertips, you will save an enormous amount of time on designing and trouble-shooting your SQL.

The cost-based optimizer is simply a piece of code that contains a model of how Oracle databases work. By applying this model to the statistics about your data, the optimizer tries to efficiently convert your query into an executable plan. Unfortunately, the model can't be perfect, your statistics can't be perfect, and the resulting execution plan may be far from perfect.

In Cost-Based Oracle Fundamentals, the first book in a series of three, Jonathan Lewis—one of the foremost authorities in this field—describes the most commonly used parts of the model, what the optimizer does with your statistics, and why things go wrong. With this information, you’ll be in a position to fix entire problem areas, not just single SQL statements, by adjusting the model or creating more truthful statistics.

Read More Show Less

Product Details

  • ISBN-13: 9781590596364
  • Publisher: Apress
  • Publication date: 11/2/2005
  • Series: The Expert's Voice in Oracle Series
  • Edition number: 1
  • Pages: 536
  • Product dimensions: 9.25 (w) x 7.50 (h) x 1.08 (d)

Meet the Author

Jonathan Lewis has been working in the information technology industry for nearly 25 years, and has been using the Oracle relational database management system for more than 20. For the past 16 years, he has worked as a freelance consultant, often spending only one or two days at a time with any client to address critical performance problems. He also advises on design and implementation problems, and on how to make best use of the most appropriate Oracle features for a given project. Jonathan is also renowned throughout the world for his tutorials and seminars about the Oracle database engine and how to make best use of it. Having visited 42 countries at last count, his exceptional ability has earned him an O1 visa from the United States, allowing him to do consultancy and lecture work there. Jonathan has written two books about Oracle (Practical Oracle8i, Addison-Wesley, 2000; Cost-Based Oracle Fundamentals, Apress, 2005), and has contributed to two others (Oracle Insights, Apress, 2004; Oracle Database 10g New Features, Oracle Press, 2004). He also writes regularly for the UKOUG magazine, and occasionally for other publications around the world. In the limited amount of time he has leftover, Jonathan also publishes high-tech Oracle articles on his blog at jonathanlewis.wordpress.com.
Read More Show Less

Table of Contents

Ch. 1 What do you mean by cost? 1
Ch. 2 Tablescans 9
Ch. 3 Single table selectivity 41
Ch. 4 Simple B-tree access 61
Ch. 5 The clustering factor 87
Ch. 6 Selectivity issues 115
Ch. 7 Histograms 151
Ch. 8 Bitmap indexes 181
Ch. 9 Query transformation 207
Ch. 10 Join cardinality 265
Ch. 11 Nested loops 307
Ch. 12 Hash joins 319
Ch. 13 Sorting and merge joins 353
Ch. 14 The 10053 trace file 403
App. A Upgrade headaches 453
App. B Optimizer parameters 465
Read More Show Less

Customer Reviews

Average Rating 4.5
( 2 )
Rating Distribution

5 Star

(1)

4 Star

(1)

3 Star

(0)

2 Star

(0)

1 Star

(0)
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted Mon Nov 21 00:00:00 EST 2005

    look under the bonnet of Oracle's implementation

    Lewis has produced a book for a rather exclusive audience. Certainly, it's restricted to those of you who use Oracle's databases. But it is further constrained to people who want to seriously understand and optimise their Oracle computations. Why you want to do this can vary. You might simply be interested, intellectually, in probing into how Oracle implements your SQL operations. Since SQL is a declarative language, most implementations are somewhat of a black box as to how they optimise. Or, your database needs may be so large that you have to carefully tweak for faster runs. In reply, Lewis delves deeply into how to use the optimiser. Offering detailed looks under the bonnet. By explaining how to see the possible ways that the optimiser might rewrite your query, and what the implications of this are for runtime efficiency. Most other books on other databases never take you this deep. Ample opportunity here to heavily improve your table design and your SELECT queries against the tables. Though perhaps you should already be well versed in 9i or 10g to get the most benefit. The book is also an interesting glance at a way that Oracle is attempting to differentiate itself from competitors. Certainly, for the free databases of MySQL and PostgreSQL, I don't think they have anything remotely comparable to the sophistication of Oracle's optimiser. No doubt Oracle's pitch is that while their license fees are not cheap, you might ultimately derive the most productivity from their database and optimiser.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)