I will forward this to our Lead DBA who was (translation-upset) Friday when the vendor blamed the DB performance and it was a front-end issue so he sent out an email with a subject " It's always the DB"
To add to your list:
- Check if it is really a DB, not the application or web pages (see above)
- Check if another job or process is running on the server, especially if the performance is not good at certain times of the day. We once found a Windows backup job was running at 10 AM of all times. The counter I was monitoring was Disk Queue Length that was consistently up starting 10 AM. Rescheduling the backup job helped.
- Check the Processor Utilization.
- Tell them, developers to check on indexes. I would not give examples of full table scans multiple times for one query - will take to much time.
- Tell them, developers to check how connections are opened / closed during on person's session. Had a case when by a typo or something the code had Connection.Open statement inside the loop while saving records, so the new connection was created for each processed record. It was long time ago. What was not long time ago was Sharepoint 2 opening about 400 connections with each user session. This issue was resolved by our Sharepoint admin after calling Microsoft..
I have much more, but the page may time out before I post it.