

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Israel.
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.
| Dimensions | 19.05 x 3.07 x 23.5 cm |
| Edition | 1st ed. |
| Isbn 10 | 1590596366 |
| Isbn 13 | 978-1590596364 |
| Item Weight | 839 g |
| Language | English |
| Print Length | 520 pages |
| Publication Date | 2 Nov. 2005 |
| Publisher | Apress |
User
Still great for upgrades and support
The book's been out a while now - but for those of us still supporting old versions of the Oracle Database, and trying to get them through upgrades, it's an invaluable tool for understanding what's going on inside the query optimizer.It's well laid-out, the examples are clear and useful, and the source code is still available online. For anyone who's interested in how the database does what it does, it's a seriously useful resource. Even if you're working on the newer versions of Oracle (it mainly covers 8 & 9i) the principles and methods used in the book are still applicable.
User
Five Stars
Incredibly deep and good quality mind blower! Jonathan is one of the gifted ones.
User
Five Stars
Excellent.
User
Fantastic coverage of the CBO.
If you are an Oracle DBA interested in Oracle performance, then this is the book for you. I have been a DBA for more than 9 years, and have read many books on the subject of Oracle performance. I can honestly say that "Cost-Based Oracle Fundamentals", along with the Tom Kyte books, are a clear cut above the rest.Amazingly, more than 400 pages of in depth technical coverage is described as the fundamental level - this serves as a reminder that this book is the first in a series of three, all to be written by Jonathan Lewis.As you work your way through the book, and examine the test scripts and examples provided, it becomes apparent that Jonathan Lewis has spent many years investigating and testing Oracle, enabling him to be able to share this level of depth and knowledge.I found that one of the shortest sections - "Appendix A, Upgrade Headaches" was very helpful for my particular day to day role as a DBA. I have always found that there is a fear of what the Optimizer has in store for you, as you upgrade from one version of Oracle to the next. Jonathan Lewis manages to cover off many Optimizer specific changes between the versions that may catch you out. This serves as a very good checklist for any DBA.Finally, I will be reading this book again, as I need to make sure I have not overlooked anything before the second instalment arrives in the shops!
User
Essential Read
If you want to understand and I mean really understand the oracle CBO, beg borrow or steal this book.It's an engaging book and very technical in places, which is absolutely how it should be. Any book that discusses the CBO and is not technical, and could be read it whilst watching `Match of the Day' is probably not worth the paper.Every Oracle Developer, DBA, Data Architect etc should own a copy.
User
Fundaments for the Advanced
The title of this book may lead some to believe this is a book for beginners. Think again! This is the most advanced and detailed Oracle book I have read. At points I thought that much of the material was unlikely to be of use in real life. However, within a couple of months of reading the book I was able to diagnose and resolve at least two problems that had completely stumped my predecessors. Diagnosing and resolving these problems required an understanding of material found exclusively in this book. As long as you are prepared to invest plenty of time in reading (and rereading) this book your understanding of this most important Oracle component will be transformed.
User
Best ever Oracle book
This is the best ever oracle book I have read. What was interesting for me the way the test scripts where written down isolating each and every aspects that make up complex task of building the execution plan. I am no DBA but as a developer hard pressed to deliver reports that needs to be running at reasonable time (sometimes ridiculously quick) this book has been a boon for me. My understanding of oracle has gone leaps and bonds. Thanks Jonathan I have recommended this to all my colleagues.
User
BEST EVER
This book is the best book ever, in my view, Tom's "Expert Oracle" has no comparsion to this one. If you want to be a serious Oracle developer or DBA, this book is definitely a MUST to read.If you can't understand at the first time(as I did), read again!
User
A Fantastic Book with a Very Deceptive Name
I waited nearly three years after the first cover to cover read through of this book, and two years after the second cover to cover read through of this book to write this review - just in case my opinion of the book changed. I enjoyed the first pass through the book, but became increasingly concerned as just weeks earlier I had migrated the most critical database at the company from Oracle 8.1.7.3 to 10.2.0.2. It seemed every turn of the page brought new understanding of what could have gone wrong during and after the migration, not only what might happen, but also most importantly WHY it might happen. Appendix A of the book quickly summarizes what one might expect when moving from one database release to another - that section of the book, for me, was worth several times the price of the book. I might also add that this book provided the tools and techniques necessary to troubleshoot and resolve a session crashing issue triggered by the application of the October 2006 patch for 10.2.0.2, as well as another odd problem which appeared when OPTIMIZER_FEATURES_ENABLE was set to a value greater than 10.1.0.4.During the second read through of the book I found a number of extremely useful pieces of information which were somehow missed during the previous pass through the book (I recorded much more detailed notes the second time). A brief sampling of some of the more personally useful pieces of information from the book:* The filter lines in 10053 traces and XPLANS can show implicit conversions from varchar to number. (It also shows when a commercially developed program repeatedly defines bind variables as VARCHAR2 when those bind variables should have been defined as numeric.)* Bind variable peeking is not used with explain plan or autotrace. (Believing explain plans for SQL statements with bind variables seems to be a common problem on Oracle related forums.)* In an execution plan, the access predicates show the predicates used to generate the start and stop keys for the index, but the filter predicates show the predicates that cannot be used until the leaf blocks have been reached. (That's why my query is running slow..., slapping hand to forehead.)* OPTIMIZER_INDEX_COST_ADJ reduces the cost of single block reads, which tends to reduce the tendency of excessive tablescans. The downside is that due to rounding errors, the optimizer may decide to use the wrong index. (I have seen this happen, Oracle decides to use an index with just two distinct values, rather than a high precision index with many distinct values - the primary key index.)* Constraints on tables can generate additional predicates due to transitive closure. (That's were those access and filter predicates came from...)* Bind variable peeking can introduce poor execution plans if a typical value is not specified for bind variables on the first hard parse. (Such as a commercial product submitting NULL values for the bind variables values during the initial hard parse, followed by extremely unpopular values, followed by somewhat popular values in a tight loop, causing performance problems.)* With the evolution of the optimizer, Oracle is increasingly likely to eliminate subqueries by using various transformations. (Hence the reason why code that ran slowly against an Oracle 8.1.7.3 database might run quickly against a 10.2.0.2 database, and why other code that ran quickly on Oracle 8.1.7.3 takes orders of magnitude longer on 10.2.0.2, without some assistance.)* Setting the value of SORT_AREA_RETAINED_SIZE to a value other than that of SORT_AREA_SIZE (or 0) may cause Oracle to spill the sort results to the temp tablespace, even if the sort completed in memory, and this will not be reported as a sort to disk. (This flies somewhat counter to a recommendation of my favorite Oracle wait event book from 2001 which suggested that as SORT_AREA_SIZE is increased to allow sorts to complete in memory, that SORT_AREA_RETAINED_SIZE should be decreased.)* Extended coverage of 10053 trace file capturing and analysis.* Description of several hints which might be used to better control the execution plans.* Extensive descriptions of several of the hidden (underscored) parameters which control the optimizer's behavior and how the value for OPTIMIZER_FEATURES_ENABLE automatically adjusts some of these hidden parameters.* Mathematical logic behind the cost calculations used by the optimizer, and how the calculated cost influences the execution plans generated by the optimizer.The author maintains an extremely helpful Oracle blog which seems to be a direct extension of his book, helping to extend the analysis performed in the book to more recent versions of Oracle, and explore other areas of potential concern to database administrators. On his website the author also maintains a complete list of book errata, additional information learned since the publication date, and how the book's contents need to be reworded to be applicable to more recent versions of Oracle - in all cases giving credit to the person who identified the potential rewording. Directly from the author's errata pages: "I spotted the first error in Practical Oracle 8i a few seconds after the first copy had landed on my front door-step. I spotted the first error in Cost Based Oracle before the printer had even finished printing it - I woke up at three a.m. a few days before the book came out, realizing that I had introduced an error in the last pass of proof-reading the galley pages." As infrequently as this author makes mistakes, it is good to see that the author is humble about the mistakes, without attempting to sweep those mistakes into a dark corner while scolding the person who identified the mistakes.You will not find page after page of wide margin, 14 point font sized text interspersed between cartoon drawings in the book. You will not find wild assumptions in this book. You will not find cases where the author must have been hand waiving (with a third hand) while composing the book. You will not find untested scripts scattered through the pages. You will find, with a little bit of effort, the reason why the Oracle database instance did not behave as expected.Prior to purchasing this author's book, I performed a fairly extensive search on the Internet to make certain that the author's book would not do more damage than good to my comprehension of what makes an Oracle database function. I found that the author created Usenet group postings in Oracle related forums, helping other users, dating back to 1994; and in checking the accuracy of those post contents, what was stated is just about as accurate now as it was in 1994. I also found that the author had participated in several technical discussions on the Oracle-L list serve. Following the purchase of the book I noticed that the author set up one of the most technical Oracle related blogs on the Internet, and started participating in Oracle's OTN forums. Since that time I have had the opportunity to converse directly with the author a couple times on the OTN forums and Usenet, where I have always found him to be helpful, knowledgeable, and humble if he missed/overlooked a small detail (and humble when pointing out a small or significant detail which I missed).In short, my opinion of the book has not changed since the first read through nearly three years ago. "Cost-Based Oracle Fundamentals" was, and still is, the most useful Oracle performance related book which I have found. The book, however, is closely followed in usefulness, in no particular order, by "Troubleshooting Oracle Performance", "Optimizing Oracle Performance", "Expert Oracle Database Architecture" and "Oracle Performance Tuning 101".
User
Excellete Book for Oracle Performance geeks
One of the best book from one of the best in Oracle performance tuning and optimization.Best book to start with if you want to explore internals of Oracle DB optimizer and query planner.Prashant DixitFatdba.com
User
Jonathan is a tease... but it's a great book!
Each quarter my team of DBA's has one book that we read and discuss in team meetings. This quarter, Cost-Based Oracle Fundamentals is it. This book is a wholly remarkable book for the moderate to advanced DBA. It is a deep dive into the Oracle optimizer, providing some wonderful insights into not only how it works, but why. It is not a book for the faint of hart, or those waiting breathlessly for retirement. It is a book for those who want to understand the CBO in more depth.Within the book, Jonathan provides insights into how the CBO *should* work. He follows up often by demonstrating the maturing (or devolving as the case may be) of the CBO from version to version. Beyond his own experimentation and results, he leads the reader into the process that he has followed to come to understand the internals of the CBO, providing a road map allowing the reader to continue to explore the optimizer in future releases.However, I must take Jonathan to task, for he is a nasty tease. This book was released about two years ago. In it, he leads us on with promises of forthcoming volumes 2 and 3, dangling the carrot out there for us to follow. Sadly, these volumes are yet to be seen. Jonathan! Quit running to and fro filling our heads with knowledge at various conferences and write those books man!A caution for the new DBA or the cursory SQL developer, you may find this book overwhelming at first glance. For the new or even intermediate DBA, it might be hard to derive practical application of what Jonathan is teaching at first glance. Take your time with the material and the insight that you will gain will be invaluable.Overall, if you want a book with meat, then this is the book for you. It will expand your mind and the way you look at the Oracle CBO.
User
Very detailed Information
The book covers in great detail many internals of the Oracle Optimiser, including comparisons from Oracle 10 to 8. The author also shows how to set up and test these things, starting with the details of single table access (and there's a surprising amount of detail to be aware of even for a 'simple' single table access) and building up systematically from there.Why only 4 stars? At times this book focuses too much on detail - especially in the style of writing. It is sometimes hard to get to the concepts from this detailed point of view. Of course the author provides summaries per chapter. However many of the chapters start with some script and the resulting details of this script. The concept this leads to is then mentioned later on in the chapter - it's mostly a question of personal taste. Personally I prefer the style of writing in Guy Harrisons book on the same topic, however Harrison is not as detailed and the Harrison Book only covers Oracle 8, while this one has information up to Oracle 10 Release 2.So to sum this up: Recommended for anyone interested in the real details of performance tuning and how the optimiser works / where the pitfals are. Only negative is my personal (dis)taste for the style of writing.
User
Nice Experience
I was looking for this book for a long long time. In most of the e-commerce sites, it would say 'Out of Stock' or the ones which are available would be more than 3K INR. It was a pleasant surprise for me to find this book in amazon on a much lesser price.Delta's - the book could have been packed more appropriately.
Trustpilot
1 month ago
1 month ago