Figure 28. AppSleuth's output after the first improvement.
Specifically, the total elapsed time improves by a factor of nearly
200 (from 21 seconds to 0.11 seconds). The call graph is of
course radically simplified too, potentially enhancing
maintainability.
4.3.6 Second Improvement of the Application
Reexamining the table schema design of the application, we
noticed that it would be beneficial to reduce the three-table join to
a two-table join by adding the desc_id column to the sku_def
table instead of to the hotel_desc table. Although this
denormalizes the sku_def table, the number of rows remains
unchanged and one table is eliminated from the join. (We tried
Quest SQL Optimizer and Oracle SQL Tuning Advisor to tune
the SQL statement of Figure 27, but neither suggested any
improvement.) Table sku_def becomes (Figure 29):