|
The Art of SQL
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.
Preface
1. Laying Plans
Designing Databases for Performance
2. Waging War
Accessing Databases Efficiently
3. Tactical Dispositions
Indexing
4. Maneuvering
Thinking SQL Statements
5. Terrain
Understanding Physical Implementation
6. The Nine Situations
Recognizing Classic SQL Patterns
7. Variations in Tactics
Dealing with Hierarchical Data
8. Weaknesses and Strengths
Recognizing and Handling Difficult Cases
9. Multiple Fronts
Tackling Concurrency
10. Assembly of Forces
Coping with Large Volumes of Data
11. Stratagems
Trying to Salvage Response Times
12. Employment of Spies
Monitoring Performance
Photo Credits
Index
|