1) SQL code changes
2) Indexes
3) Application code changes
4) Database config changes
5) Hardware upgrades (IO predominately, very hard to max out a modern CPU with well-written code)
Restarting SQL is not a performance fix. If restarting SQL improves performance then there's some config or code problem that needs to be identified and resolved.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability