I’m no DBA but it sounds like you need to fire up SQL trace and see what type or number of transactions are running and causing the delays. AS you probably know, databases are usually the weak link in any application for many reasons.
My 2c is the cause is usually improper design as relates to SQL query design, serialization of requests, indexes and use of stored procedures.
For example, if a really weak SQL query design resulted in full table scans against a 1 million+ row table, that’s going to murder performance. Use of indexes, summary tables (eg archive out old data, say 3+ months old to another table or DB) and good SQL will prevent that.
Again, I’m not a DBA nor do have I used these tools myself but I’ve read good reviews on them:
There’s a whole lot more companies that make SQL tuning tools than just these two. Without knowing your experience level with SQL, I’d say you can try to plug away using SQL trace or perhaps demoing one of these tools may lead you to conclude they are worth the investment.
Throwing more hardware at the DB server is unlikely to give you much of a boost in performance IMO. I’ve been there and done that…