You can start by eliminating repeated full or partial table scans. If the IBM database monitor recommends the same index 3,000 times an hour, you ought to consider building it as a permanent index or logical file. There are many other inefficiencies though within an SQL based application. Opening and closing a database file for every INSERT within a long running batch process can also cause significant overhead. Reusing open data paths is critical in ensuring optimum performance of your SQL applications. Making sure access plans are reused and not constantly rebuilt is equally important. Using static SQL rather than dynamic can help. Not performing dynamic sorts or access path rebuilds will significantly reduce I/O as well. If excessive SQL timeouts are occurring, you might need some operating system PTFs or adjustments in the QAQQINI options file.