• Good job referencing http://support.microsoft.com/kb/2154845/en-us in the script - I would have added some information about it in the article as well. "You observe severe blocking when the SQL Server is experiencing heavy load. When you examine the Dynamic Management Views [sys.dm_exec_request or sys.dm_os_waiting_tasks], you observe that these requests or tasks are waiting for tempdb resources. You will notice that the wait type and wait resource point to LATCH waits on pages in tempdb. These pages might be of the format 2:1:1, 2:1:3, etc."

    Perry's right - even for an illustration, 64MB autogrowth is horrifically small for any implementation I can see that would actually be experiencing the contention.

    For adding multiple tempdb files, if you're not going to support spreading them out over multiple spindles, I'd at least get the current tempdb location out of sys.master_files or similar and put the new files in the same place.

    Note that in your code, the script points to E: and the "After" portion shows D:, which seems inconsistent.

    Again, regarding the MS support article, I'd like to see more scripting to determining this is actually the case, and whether or not you might need to keep adding files in sets of 4 if the latch waits on pages in tempdb continues. Those who need help with adding files to tempdb have a good chance of needing help with this as well.