For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later.
In The Art of SQL , author and SQL expert Stephane Faroult argues that this "safe approach" only leads to disaster. His insightful book, named after Art of War by Sun Tzu, contends that writing quick inefficient code is sweeping the dirt under the rug. SQL code may run for 5 to 10 years, surviving several major releases of the database management system and on several generations of hardware. The code must be fast and sound from the start, and that requires a firm understanding of SQL and relational theory.
The Art of SQL offers best practices that teach experienced SQL users to focus on strategy rather than specifics. Faroult's approach takes a page from Sun Tzu's classic treatise by viewing database design as a military campaign. You need knowledge, skills, and talent. Talent can't be taught, but every strategist from Sun Tzu to modern-day generals believed that it can be nurtured through the experience of others. They passed on their experience acquired in the field through basic principles that served as guiding stars amid the sound and fury of battle. This is what Faroult does with SQL.
Like a successful battle plan, good architectural choices are based on contingencies. What if the volume of this or that table increases unexpectedly? What if, following a merger, the number of users doubles? What if you want to keep several years of data online? Faroult's way of looking at SQL performance may be unconventional and unique, but he's deadly serious about writing good SQL and using SQL well. The Art of SQL is not a cookbook, listing problems and giving recipes. The aim is to get you-and your manager-to raise good questions.
|Publisher:||O'Reilly Media, Incorporated|
|Product dimensions:||7.00(w) x 9.19(h) x 0.86(d)|
About the Author
Stephane Faroult first discovered relational databases and the SQL language back in 1983. He joined Oracle France in their early days (after a brief spell with IBM and a bout of teaching at the University of Ottawa) and soon developed an interest in performance and tuning topics. After leaving Oracle in 1988, he briefly tried to reform and did a bit of operational research, but after one year, he succumbed again to relational databases. He has been continuously performing database consultancy since then, and founded RoughSea Ltd in 1998.
Graduated in geology from Durham University (1968), then taught at Edinburgh University, obtaining an M.Phil in geology 1975. Worked in Greece as a geologist (1973,74), and then in University of Newcastle specialising in geological databases.Joined the British Geological Survey 1980, and has steered the organisations' use of database ever since, as data architect and database administrator. Has worked with databases since 1977, relational databases since 1981, and Oracle since 1985. He has lectured widely in the UK on geological aspects of database and has specialised on aspects of the SQL system as well as data modelling from the corporate architecture down to the departmental level. He has presented at various Oracle database conferences both in the UK, Europe and North America. Currently a director on the board of the UK Oracle Users Group.
Table of Contents
- Chapter 1: Laying Plans
- Chapter 2: Waging War
- Chapter 3: Tactical Dispositions
- Chapter 4: Maneuvering
- Chapter 5: Terrain
- Chapter 6: The Nine Situations
- Chapter 7: Variations in Tactics
- Chapter 8: Weaknesses and Strengths
- Chapter 9: Multiple Fronts
- Chapter 10: Assembly of Forces
- Chapter 11: Stratagems
- Chapter 12: Employment of Spies
- PHOTO CREDITS
- About the Author
Most Helpful Customer Reviews
Are you a developer or software architect? If you are, then this book is for you! Authors Stephane Faroult and Peter Robson, have done an outstanding job of writing a book that shows people who are no longer novices how to write good SQL code from the start and, most importantly, to have a view of SQL code that goes beyond individual SQL statements. Faroult and Robson, begin by examining how to design databases for performance. Then, the authors explain how programs must be designed to access databases efficiently. Next, the authors tell you why and how to index. The authors then explain how to envision SQL statements. They continue by showing you how physical implementation impacts performance. Then, the authors cover classic SQL patterns and how to approach them. They then explain how to deal with hierarchical data. Next, they provide indications about how to recognize and handle some difficult cases. Then, they describe how to face concurrency. Next, the authors address how to cope with large volumes of data. They continue by offering a few tricks that will help you survive rotten database designs. Finally, the authors conclude the book by explaining how to define and monitor performance. This most excellent book is not a cookbook, listing problems and giving recipes. Rather, its aim is much more to help developers and their managers, to raise good questions.
"The Art of SQL" was eye-opening. This book is for people who know SQL syntax but don't yet have a deep understanding of the implications of relational theory on how a functionally correct query can nonetheless be completely wrong (and have performance, scalability, and contention consequences). It has changed the way I think about structuring my queries and has helped me to write much better SQL than I did before.