Perhaps you heard of or actually tried Windows ReadyBoost in Windows Vista, and were (like me) disappointed with the results? The idea behind ReadyBoost is to take advantage of flash memory as a cache for random disk I/O. Microsoft made some improvements to Windows ReadyBoost in Windows 7, which makes it a little more useful, especially if you know a couple of tricks to take better advantage of it.
My scenario is a desktop workstation or laptop that is running a 64-bit version of Windows 7. Many laptops (and workstations) have only a single, magnetic drive, hopefully running at 7200rpm, even though they may have a fast, multi-core processor and a decent amount of RAM. Running applications such as SQL Server 2005/2008 and Visual Studio 2008/2010 during daily development use on such a machine often runs into disk I/O bottlenecks that noticeably affect performance.
The best solution in such a situation is usually adding a second hard drive or a faster hard drive, or upgrading to an SSD, and adding more RAM to the system. With a laptop, a second hard drive may not be possible, since most laptops only have a single hard drive bay. If your laptop is running with a 5400rpm drive, you should definitely think about upgrading to a 7200rpm drive or an SSD (if you can afford it). You can get a fast, 500GB 7200rpm drive for around $100.00, while a good SSD still costs considerably more. If you do upgrade to an SSD, you won’t need Windows ReadyBoost (and in fact ReadyBoost will be disabled if you have an SSD).
You should also max out your RAM (which can be anywhere from 4GB to 16GB) depending on the vintage of your machine, but maybe that is not possible for financial reasons. Going to 4GB sticks of RAM is still very expensive for a laptop. Whether or not you can upgrade your hard drive and memory, I think it is worth giving Windows ReadyBoost another try with Windows 7.
To do this, you need a fast USB flash drive or a decent SDHC card (such as a SanDisk Ultra SDHC card). You can get a decent 8GB SDHC card for about $30-40 if you shop around. The nice thing about an SHDC card is that most newer laptops have an SHDC slot, so you can just put a card in there, dedicate it to ReadyBoost and forget it. This is a better solution than using a USB flash drive in one of your USB slots, since it is easy to forget to always use the ReadyBoost USB flash drive.
If you want to use a ReadyBoost drive that is larger than 4GB, you will need to format it with NTFS. Every flash drive I have ever seen comes formatted from the factory with FAT32, which is limited to a 4GB file size. Just reformat it with NTFS, so you can dedicate more than 4GB to ReadyBoost. Once you have done that, just right-click on the drive, and choose the ReadyBoost tab, and decide how much of the drive to dedicate to ReadyBoost. I usually change the name of the drive to ReadyBoost, just so it is obvious what it is for.
You should also double-check that the removal policy is set to enable write caching in Windows.
There are PerfMon counters that let you monitor what ReadyBoost is doing (as shown below):
I plan on doing some benchmarking with SQL Server 2008 to see if ReadyBoost has a measurable effect on performance.