Databases Reference
In-Depth Information
The Issue
The IT team did not get consistent performance results from the benchmark. The
process for running the benchmark was to fresh-start the application server, the
database server, and the load test server before every run. The test environment
was on an isolated network, so that ruled out interference from other applica-
tions as the cause of the inconsistent results.
The IT team ran the benchmark the first time, and the response time was
unacceptable for many of the tests in the benchmark suite. When they manually
reran the tests that had the performance issues, response time seemed acceptable.
What is causing these inconsistent results?
Thinking Through the Issue
Let's think through what we know:
Because manual testing indicated acceptable performance, was there a prob-
lem with the test environment? Was the third-party tool used to emulate
concurrent users configured accurately? In this case, there was no issue with
the tool.
Perhaps the benchmark was not run long enough or measured short
response times. Benchmarks that are run over short durations make it diffi-
cult to reproduce meaningful and reliable results. See “Measure over a
Sufficient Duration of Time,” page 254, for details. In this case, this was not
the issue.
Was the application coded correctly? Was the database driver tuned cor-
rectly? In both cases, IT checked, and the answer was yes.
Does connection pooling or statement pooling come into play? Yes, both
should be used; however, neither was the culprit.
The database was not prepared. The first time the application accesses a table
row in a database, the database places a copy of the row onto a page on disk.
If the database can find the requested data on a page in memory when subse-
quent data requests are processed, the database optimizes its operation by
avoiding disk I/O. See “Prepare the Database,” page 257.
The Resolution
After carefully examining the benchmark results, the IT team saw that the worst
performance occurred when each of the database systems was accessing data that
had not been accessed previously. In a database system, the most recently
Search WWH ::




Custom Search