In this chapter, we first saw how to implement performance counters to keep track of the frequency and response times of off-box requests. We then discussed a number of ways to reduce wait times. These included waiting concurrently instead of sequentially, reducing the overhead of session state kept on a state server or database server, minimizing delays due to thread locking and optimizing disk writes. We also had a quick look at disabling 8.3 filenames.
In the next chapter, we'll move into DBA territory and see how to speed up database accesses, including applying the correct indexes and identifying and optimizing expensive queries.