This is one of those situations where throwing more memory at it is probably not going to work. You also need to look at what uses the package cache. This is where all the SQL goes to see if it has been seen before. If so, DB2 already has an access plan and can cut some CPU usage. Unfortunately, DB2 must match the SQL exactly to gain this benefit. So, similar SQL statements are treated as being different and a new access plan must be generated and you hit ratio goes down. For example "select * from mytable where code = 1" and "select * from mytable where code = 2" are different in DB2's eyes. If the queries were coded and prepared like "select * from mytable where code = ?" then the statements would be the same and you hit ratio would go up and you CPU usage would go down.
Andy