What can you do when database performance doesn't meet expectations? Before you turn to expensive hardware upgrades to solve the problem, reach for this book. Refactoring SQL Applications provides a set of tested options for making code modifications to dramatically improve the way your database applications function. Backed by real-world examples, you'll find quick fixes for simple problems, in-depth answers for more complex situations, and complete solutions for applications with extensive problems.
Determine if and where you can expect performance gains
Apply quick fixes, such as limiting calls to the database in stored functions and procedures
Refactor tasks, such as replacing application code by a stored procedure, or replacing iterative, procedural statements with sweeping SQL statements
Refactor flow by increasing parallelism and switching business-inducted processing from synchronous to asynchronous
Refactor design using schema extensions, regular views, materialized views, partitioning, and more
Compare before and after versions of a program to ensure you get the same results once you make modifications
Refactoring SQL Applications teaches you to recognize and assess code that needs refactoring, and to understand the crucial link between refactoring and performance. If and when your application bogs down, this book will help you get it back up to speed.
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.
Pascal L'Hermite has been working with relational databases in OLTP, production and development environments on Oracle Databases for the past 12 years and on Microsoft SQL Server for the past 5 years.
Chapter 1 Assessment
A Simple Example
Assessing Possible Gains
Chapter 2 Sanity Checks
Statistics and Data Skewness
Parsing and Bind Variables
Chapter 3 User Functions and Views
Chapter 4 Testing Framework
Generating Test Data
Comparing Alternative Versions
Chapter 5 Statement Refactoring
Execution Plans and Optimizer Directives
Analyzing a Slow Query
Refactoring the Query Core
Rebuilding the Initial Query
Chapter 6 Task Refactoring
The SQL Mindset
Restructuring the Code
Chapter 7 Refactoring Flows and Databases
Chapter 8 How It Works: Refactoring in Practice
Can You Look at the Database?
Queries of Death
All These Fast Queries
No Obvious Very Wrong Query
Time to Conclude
Appendix Scripts and Sample Programs
Chapter 7 (MySQL)
mklipsum and lipsum