Database Tuning: Principles, Experiments, and Troubleshooting Techniques

Databases must communicate with programming languages that do specialized manipulations, with outside data sources, and with application servers.
In most settings, the underlying hardware can make this communication fast, but poor use of the software interface tools can slow your system down significantly. This chapter suggests methods to make the interfaces fast.
Most applications interact with database systems in one of two ways: by using a system-specific fourth-generation language(4GL) or by using a programming language (such as Java, Visual Basic, or C) that relies on a call-level interface.
Different vendors offer different 4GLs, so using a 4GL hinders portability, but they execute at a high level so often result in small programs. Call-level interfaces are libraries of functions that enable a program to connect to a database server, run SQL statements, fetch query results, and commit or abort transactions. There are a myriad of call-level interfaces. The most popular are ODBC for C/C++ and JDBC for Java.
ODBC (Open DataBase Connectivity) was originally designed by Microsoft; it has become a standard interface for database systems on Windows platforms (Oracle and DB2 provide ODBC drivers for Windows). [1] JDBC is a call-level interface for Java that was defined by Sun. JDBC is very similar to ODBC in its architecture and in the functions it supports; we thus focus on ODBC in the rest of this section.
An application using the ODBC interface relies on a driver manager (integrated with Windows) to load a driver that...