If this problem happens with the internal snapshot created by DBCC CHECKDB family of commands
You can schedule DBCC CHECKDB during a time window when there will be comparatively less data modifications and hence less Copy-On-Writes to the snapshot sparse files
Use WITH TABLOCK option of DBCC CHECKDB to avoid using the internal snapshot creation.
You can evaluate alternatives to DBCC CHECKDB command. You can execute DBCC CHECKTABLE in a loop for all tables followed by DBCC CHECKALLOC.
Evaluate if you can create an explicit snapshot on a different drive which has very less activity and execute DBCC CHECKDB against that snapshot database.
Avoid running multiple DBCC CHECKDB commands concurrently on different databases. This will reduce the probability of fragmentation.
Avoid performing large scale maintenance work [like re-indexing or shrink operations] when DBCC CHECKDB is still running.
Create a explicit snapshot of the source database and execute DBCC CHECKDB against the snapshot database
Evaluate using various options of DBCC CHECKDB like PHYSICAL_ONLY to reduce the lifetime of the internal snapshot created by the DBCC command.
Evaluate using Trace Flag 2566 to avoid expensive data purity checks. Refer to a known issue: KBA 945770 http://support.microsoft.com/default.aspx?scid=kb;EN-US;945770
If this problem happens with the explicit snapshot created on a database for reporting purposes
Reduce the lifetime of the snapshot sparse files. The snapshots have to be dropped and re-created more frequently before they start to encounter these error messages.
Create the snapshot on a different drives other than the source data files and with less file activity to reduce file level fragmentation.
Drop the snapshot database before doing extensive maintenance work or large data load operations. Re-create the snapshots after the maintenance work is completed.
Applicable to both situations
Find out which tables/indexes result in the most write activity during the lifetime of the snapshot and separate them out into a different file group with many files of comparatively smaller sizes.
Make sure the data files are not fragmented physically to a great extent. Use the Operating System Disk management tools to understand the physical file system fragmentation of the data files and reduce the fragmentation.
Specify a lower FILLFACTOR to reduce the frequency of page splits and resulting Copy-On-Writes
Reduce the size of the data files. Create more data files which are less than 64 GB in size approximately and spread the data across these files in a separate file group.