There was a nice research paper published by Microsoft Research called To Blob or not to Blob where they looked at all sorts of variables and impacts.
Their finding in the end:
- up to 256 KB in size, blobs are stored in the database more efficiently than in the file system
- for 1 MB and larger, the file system is more efficient
- in between it’s a toss-up
Since that paper was published, SQL Server 2008 has also added the FILESTREAM attribute which makes storing stuff in the file system, but under transactional control, a reality. Highly recommended you check that out!